网易首页 > 网易号 > 正文 申请入驻

python学习之selenium~css定位完整版,附代码

0
分享至

css选择器有44种:

.class: .intro,选择class=‘intro’的所有元素

#id: #firstname,选择id=‘fistname’的所有元素

*: *,选择所有的元素

element: p,选择所有的p标签的元素

element,element: div,p,选择所有的div标签元素和所有p标签的元素

element element: div p,选择div标签元素内部的所有p标签元素

element>element: div>p,选择父元素为div标签元素的所有p标签元素

element+element: div+p,选择紧接在div元素之后的所有p元素

[attribute]: [target],选择带有target属性的所有元素

[attritube=value]:[target=_blank],选择target="_blank"的所有元素

[attritube~=value]:[title~=flower],选择title属性包含单词‘flower’的所有元素

[attritube|=value]:[lang|=en],选择lang属性值以‘en’开头的所有元素(css2)(selenium用不到)

:link a:link,选择所有未被访问的链接

:visited a:visited,选择所有已被访问的链接

:active a:active,选择活动链接

:hover a:hover,选择鼠标指针位于其上的链接

:focus input:focus,选择获得焦点的input元素

:first-letter p:first-letter,选择每个p标签元素的首字母(获取p标签包含文本的首字母)

:first-line p:first-line,选择每个p标签元素的首行(获取p标签包含文本的首行)

:first-child p:first-child,选择属于父元素的第一个子元素的每个p标签元素

:before p:before,在每个p标签元素的内容之前插入内。(样式指定内容插入到p标签包括的文本之前)

:after p:after,在每个p标签元素的内容之后插入内容。(样式指定内容插入到p标签包括的文本之后)

:lang(language) p:lang(it),选择的lang属性值等于it的每个p标签元素

element1~element2 p~ul,选择前面有p标签元素的每一个ul标签元素(只要前面有p标签都可以,不管跨不跨标签,也不管是不是子标签)

[attribute^=value] a[src^='https'],选择其src属性以'https'开头的每个a标签元素

[attribute$=value] a[src$='.pdf'],选择其src属性以'.pdf'结尾的所有a标签元素

[attribute*=value] a[src*='abc'],选择其src属性包含'abc'子串的每个a标签元素

:first-of-type p:first-of-type,选择父元素的首个p标签元素的每个p标签元素(所有p标签对应的父标签的第一个子p标签元素)

:last-of-type p:last-of-type,选择父元素的最后一个p标签元素的每个p标签元素(所有p标签对应的父标签的最后一个子p标签元素)

:only-of-type p:only-of-type,选择父元素里面唯一的p标签元素的每个p标签元素(所有p标签对应的父标签元素只有一个子p标签元素)

:only-child p:only-child,选择父元素里面只有一个标签的每个p标签元素(父标签里面只有一个p标签)

:nth-child(n) p:nth-child(2),选择属于父元素的第二个子元素的每个p标签元素(所有的p标签的父标签对应的第二个子标签元素)

:nth-last-child(n) p:nth-last-child(2),选择属于父元素的倒数第二个子元素的每个p标签元素(所有的p标签的父标签对应的倒数第二个子标签元素)

:nth-of-type(n) p:nth-of-type(2),选择属于其父标签元素的第二个p标签的每个p标签元素(所有p标签对应的父标签的第二个p标签元素,也就是这个和p标签平级)

:nth-last-of-type(n) p:nth-last-of-type(2),选择属于其父标签元素的倒数第二个p标签的每个p标签元素(所有p标签对应的父标签的倒数第二个p标签元素,也就是这个和p标签平级)

:last-child p:last-child,选择属于其父标签元素最后一个子元素是p标签的每个p标签元素(父标签的最后一个标签必须是p标签)

:root :root,选择文档的根元素

:empty p:empty,选择没有子元素的每个p标签元素(包括文本节点,无法理解)

:target #news:target,选择当前活动的#news元素(锚点定位)

:enabled input:enabled,选择每个启用input标签元素(input文本可编辑)

:disabled input:disabled,选择每个禁用input标签元素(input文本不可编辑)

:checked input:checked,选择每个被选中的input标签元素

:not(selector) :not(p),选择非p标签元素的每个元素

::selection ::selection,选择被用户选取的元素部分(选取文本会被样式控制)

selenium通过css定位常用的有:

通过class定位,一个标签有多个class中间的空格用点代替,通过父标签的父标签定位p,在通过p定位子标签input,通过标签+class定位

#element element: div p,选择div标签元素内部的所有p标签元素

#element>element: div>p,选择父元素为div标签元素的所有p标签元素

#element element: div p,选择div标签元素内部的所有p标签元素

#element>element: div>p,选择父元素为div标签元素的所有p标签元素

#element+element: div+p,选择紧接在div元素之后的所有p元素

#id: #firstname,选择id=‘fistname’的所有元素

#[attritube=value]:[target=_blank],选择target="_blank"的所有元素

#[attribute]: [target],选择带有target属性的所有元素

#[attritube~=value]:[title~=flower],选择title属性包含单词‘flower’的所有元素

#:first-child p:first-child,选择属于父元素的第一个子元素的每个p标签元素

#[attribute^=value] a[src^='https'],选择其src属性以'https'开头的每个a标签元素

#[attribute$=value] a[src$='.pdf'],选择其src属性以'.pdf'结尾的所有a标签元素

#[attribute*=value] a[src*='abc'],选择其src属性包含'abc'子串的每个a标签元素

#:first-of-type p:first-of-type,选择父元素的首个p标签元素的每个p标签元素(所有p标签对应的父标签的第一个子p标签元素)

#:last-of-type p:last-of-type,选择父元素的最后一个p标签元素的每个p标签元素(所有p标签对应的父标签的最后一个子p标签元素)

#:only-of-type p:only-of-type,选择父元素里面唯一的p标签元素的每个p标签元素(所有p标签对应的父标签元素只有一个子p标签元素)

#:nth-child(n) p:nth-child(2),选择属于父元素的第二个子元素的每个p标签元素(所有的p标签的父标签对应的第二个子标签元素)

#:only-child p:only-child,选择父元素里面只有一个标签的每个p标签元素(父标签里面只有一个p标签)

#:nth-last-child(n) p:nth-last-child(2),选择属于父元素的倒数第二个子元素的每个p标签元素(所有的p标签的父标签对应的倒数第二个子标签元素)

#:nth-of-type(n) p:nth-of-type(2),选择属于其父标签元素的第二个p标签的每个p标签元素(所有p标签对应的父标签的第二个p标签元素,也就是这个和p标签平级)

#鼠标放上悬浮选择菜单ActionChains(browser).move_to_element(article).perform()需要导入ActionChains包from selenium.webdriver.common.action_chains import ActionChains

#:nth-last-of-type(n) p:nth-last-of-type(2),选择属于其父标签元素的倒数第二个p标签的每个p标签元素(所有p标签对应的父标签的倒数第二个p标签元素,也就是这个和p标签平级)

#:last-child p:last-child,选择属于其父标签元素最后一个子元素是p标签的每个p标签元素(父标签的最后一个标签必须是p标签)

#coding=utf-8

from selenium import webdriver

import time

from selenium.webdriver.common.action_chains import ActionChains

browser=webdriver.Chrome()

browser.maximize_window()

browser.get('地址')

#通过class定位,一个标签有多个class中间的空格用点代替

browser.find_element_by_css_selector('.ant-input.inp.mt28').send_keys('ceshi')

#通过父标签的父标签定位p,在通过p定位子标签input

browser.find_element_by_css_selector('div.login-main>p:nth-child(2)>input').send_keys('123456')

#通过标签+class定位

browser.find_element_by_css_selector('button.ant-btn.ant-btn-primary').click()

time.sleep(1)

#element element: div p,选择div标签元素内部的所有p标签元素

browser.find_element_by_css_selector('div.icon-pass-change-div i').click()

#element>element: div>p,选择父元素为div标签元素的所有p标签元素

browser.find_element_by_css_selector('button.ant-modal-close>span').click()

#element+element: div+p,选择紧接在div元素之后的所有p元素

browser.find_element_by_css_selector('div.user-name+div>i').click()

#id: #firstname,选择id=‘fistname’的所有元素

browser.find_element_by_css_selector('#sourcePwd').send_keys('wafer123')

#[attritube=value]:[target=_blank],选择target="_blank"的所有元素

browser.find_element_by_css_selector('#newPassword[type="password"]').send_keys('123456')

#[attribute]: [target],选择带有target属性的所有元素

browser.find_element_by_css_selector('#confirmPassword[placeholder]').send_keys('123456')

#[attritube~=value]:[title~=flower],选择title属性包含单词‘flower’的所有元素

browser.find_element_by_css_selector('button[class~=ant-btn]:nth-child(1)').click()

#:first-child p:first-child,选择属于父元素的第一个子元素的每个p标签元素

browser.find_element_by_css_selector('.dept-chose-icon>i:first-child').click()

#[attribute^=value] a[src^='https'],选择其src属性以'https'开头的每个a标签元素

browser.find_element_by_css_selector('button[aria-label^="Close"]>span').click()

#[attribute$=value] a[src$='.pdf'],选择其src属性以'.pdf'结尾的所有a标签元素

browser.find_element_by_css_selector('i[class$="anticon anticon-plus-circle-o"]').click()

#[attribute*=value] a[src*='abc'],选择其src属性包含'abc'子串的每个a标签元素

browser.find_element_by_css_selector('.ant-modal-body>span[class*="ant-select"]').click()

#:first-of-type p:first-of-type,选择父元素的首个p标签元素的每个p标签元素(所有p标签对应的父标签的第一个子p标签元素)

browser.find_element_by_css_selector('.ant-select-tree>li:first-of-type').click()

time.sleep(0.5)

#:last-of-type p:last-of-type,选择父元素的最后一个p标签元素的每个p标签元素(所有p标签对应的父标签的最后一个子p标签元素)

browser.find_element_by_css_selector('.ant-modal-footer>button:last-of-type').click()

#:only-of-type p:only-of-type,选择父元素里面唯一的p标签元素的每个p标签元素(所有p标签对应的父标签元素只有一个子p标签元素)

browser.find_element_by_css_selector('.dept-chose-icon>i:only-of-type').click()

#:nth-child(n) p:nth-child(2),选择属于父元素的第二个子元素的每个p标签元素(所有的p标签的父标签对应的第二个子标签元素)

browser.find_element_by_css_selector('.ant-modal-footer>button:nth-child(1)').click()

#:only-child p:only-child,选择父元素里面只有一个标签的每个p标签元素(父标签里面只有一个p标签)

browser.find_element_by_css_selector('.ant-menu-submenu-title>i:only-child').click()

#:nth-last-child(n) p:nth-last-child(2),选择属于父元素的倒数第二个子元素的每个p标签元素(所有的p标签的父标签对应的倒数第二个子标签元素)

browser.find_element_by_css_selector('#item_0\$Menu>li:nth-last-child(2)').click()#id里面有$符号需要转义一下

#:nth-of-type(n) p:nth-of-type(2),选择属于其父标签元素的第二个p标签的每个p标签元素(所有p标签对应的父标签的第二个p标签元素,也就是这个和p标签平级)

article=browser.find_element_by_css_selector('.ant-menu-submenu-title>i:nth-of-type(1)')

#鼠标放上悬浮选择菜单ActionChains(browser).move_to_element(article).perform()需要导入ActionChains包

ActionChains(browser).move_to_element(article).perform()

#:nth-last-of-type(n) p:nth-last-of-type(2),选择属于其父标签元素的倒数第二个p标签的每个p标签元素(所有p标签对应的父标签的倒数第二个p标签元素,也就是这个和p标签平级)

browser.find_element_by_css_selector('#item_0\$Menu>li:nth-last-of-type(2)').click()

#:last-child p:last-child,选择属于其父标签元素最后一个子元素是p标签的每个p标签元素(父标签的最后一个标签必须是p标签)

browser.find_element_by_css_selector('.user-info>div:last-child').click()

browser.find_element_by_css_selector('.ant-confirm-btns>button:nth-child(2)').click()

browser.close()

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
突发!刘强东拿下中兴

突发!刘强东拿下中兴

李东阳朋友圈
2026-02-04 14:05:59
特朗普彻底暴怒!英国专家:此情况下,美国会即刻对华发动核武器

特朗普彻底暴怒!英国专家:此情况下,美国会即刻对华发动核武器

快看张同学
2026-01-30 16:14:29
沙特公共投资基金回应C罗:利雅得胜利获资最多,成绩却不如人

沙特公共投资基金回应C罗:利雅得胜利获资最多,成绩却不如人

星耀国际足坛
2026-02-03 21:57:51
女生主动起来有多黏人?网友:这些女的太开放了

女生主动起来有多黏人?网友:这些女的太开放了

带你感受人间冷暖
2026-01-27 00:20:06
罕见3重号!5注758万头奖落3地,双色球26015期,精选7码

罕见3重号!5注758万头奖落3地,双色球26015期,精选7码

小李子体育
2026-02-04 09:04:47
演员陈嘉仪自曝痛苦决定:丈夫多器官衰竭生命垂危时,她选择放弃抢救……遭儿子责怪“为什么不救”

演员陈嘉仪自曝痛苦决定:丈夫多器官衰竭生命垂危时,她选择放弃抢救……遭儿子责怪“为什么不救”

新民周刊
2026-02-02 16:06:49
全球曾仅存20多株!浙江六旬老农耗费16年繁育,一个果子卖128元

全球曾仅存20多株!浙江六旬老农耗费16年繁育,一个果子卖128元

万象硬核本尊
2026-02-03 19:14:14
新款本田飞度宣布售罄 此前限量3000辆 已上市20天

新款本田飞度宣布售罄 此前限量3000辆 已上市20天

CNMO科技
2026-02-04 12:54:03
1968年,那个逃到苏联成为克格勃的女知青傅索安,结局如何?

1968年,那个逃到苏联成为克格勃的女知青傅索安,结局如何?

明月清风阁
2026-02-03 15:20:06
重磅1换2!随着哈登加盟骑士,总冠军大概率从这三支球队中产生!

重磅1换2!随着哈登加盟骑士,总冠军大概率从这三支球队中产生!

田先生篮球
2026-02-04 11:51:41
彻底破防!网传宁波男子花50万彩礼结婚,妻子新婚出轨被捉奸在床

彻底破防!网传宁波男子花50万彩礼结婚,妻子新婚出轨被捉奸在床

火山诗话
2026-02-03 06:51:09
震动全美!克林顿夫妇同意作证,极其罕见

震动全美!克林顿夫妇同意作证,极其罕见

浙江之声
2026-02-03 16:56:26
杨丞琳返京撒糖!外套不及李荣浩风衣零头,下电梯秀恩爱超甜

杨丞琳返京撒糖!外套不及李荣浩风衣零头,下电梯秀恩爱超甜

阿废冷眼观察所
2026-02-04 07:04:37
西媒主编发文:德约科维奇让质疑他的人闭上了嘴

西媒主编发文:德约科维奇让质疑他的人闭上了嘴

网球之家
2026-02-03 12:53:36
只差最后38海里!台出动万吨巨舰,冲向我054A,防空导弹已竖起

只差最后38海里!台出动万吨巨舰,冲向我054A,防空导弹已竖起

荷兰豆爱健康
2026-02-03 11:02:09
2026养老金上调细则:这三类人能多领500元,转给爸妈!

2026养老金上调细则:这三类人能多领500元,转给爸妈!

度看全球
2026-02-04 00:05:23
日本宣布从南鸟岛海域成功采掘到含稀土的淤泥,外交部回应

日本宣布从南鸟岛海域成功采掘到含稀土的淤泥,外交部回应

环球网资讯
2026-02-03 14:29:17
棱镜门事件内幕,美国派16名特种兵进入澳门,斯若登命运扭转!

棱镜门事件内幕,美国派16名特种兵进入澳门,斯若登命运扭转!

板栗说事
2024-10-13 12:40:43
藏不住了!陈建斌自爆当年分手内幕,难怪吴越至今不婚不育

藏不住了!陈建斌自爆当年分手内幕,难怪吴越至今不婚不育

车窗起雾q
2026-01-18 02:26:34
郑爽完全变样了!抱孩子当街和张恒一家吵架,头发白了穿搭很邋遢

郑爽完全变样了!抱孩子当街和张恒一家吵架,头发白了穿搭很邋遢

娘娘不想上班
2026-02-01 16:14:21
2026-02-04 14:32:49
吾爱乐享
吾爱乐享
吾爱乐享 乐于分享
118文章数 179关注度
往期回顾 全部

科技要闻

太烦人遭投诉!元宝红包链接被微信屏蔽

头条要闻

月销暴跌至不到50辆 小米SU7 Ultra专属销售团队解散

头条要闻

月销暴跌至不到50辆 小米SU7 Ultra专属销售团队解散

体育要闻

“也许我的一小步,会成为中国足球的一大步”

娱乐要闻

姜元来在大S墓碑前哭泣,与具俊晔拥抱

财经要闻

35岁入行,先被考证“割韭菜”

汽车要闻

全伪装雪地现身 一汽-大众纯电车型线索曝光

态度原创

房产
艺术
亲子
时尚
本地

房产要闻

龙湖对面,突然要出新宅地!海口商改住又爆狠料!

艺术要闻

一篇文章看懂“传统吉祥图案”的寓意

亲子要闻

45岁高龄备孕攻略:内膜薄会影响怀孕几率吗?

状态比10年前更好,她到底做对了什么?

本地新闻

云游中国|拨开云雾,巫山每帧都是航拍大片

无障碍浏览 进入关怀版