python利用css定位如何判断标签和元素 selenium+python页面元素定位,如图,怎样定位到...
python+selenium\u5982\u4f55\u5b9a\u4f4d\u5143\u7d20\u7528\u4ed6\u7684selenium\u7684webdriverd\u7684API\uff0c\u53ef\u4ee5\u662fcss path\u5b9a\u4f4d\uff0c\u4e5f\u53ef\u662fxpath\u5b9a\u4f4d\uff0c\u8fd8\u53ef\u4ee5\u6839\u636eID\u5b9a\u4f4d\u7b49\u7b49
driver.find_element_by_tag_name('p')
对你的问题如下解答:
CSS语法表达式:
. 点表示class属性,代码案例:“.s_ipt”
[Class= ’s_ipt’] # 同上
# 表示id属性,代码案例: “#kw”
[id=’kw’] # 同上
Tag 定位标签时不需要加特殊符号,直接写标签名称即可。代码案例: “input”
[元素] 其它属性使用中括号定位。代码案例: “[method="post"]”
> 表示为父级标签元素,符号左边为父级,右边为子级。
:nth-child(1) 定位一组标签中的某一个标签,索引从头开始计数(1)。
:nth-last-child(1) 定位一组标签中的某一个标签,索引从尾开始计数(1)。
多元素定位:
同一标签满足(父级/tag/id/class/其它):span>input#kw.s_ipt[name="wd"][autocomplete="off"]
一、css:属性定位
1.css可以通过元素的id、class、标签这三个常规属性直接定位到;
2.如下是百度输入框的的html代码:
<input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"/>
3.css用#号表示id属性,如:#kw
4.css用.表示class属性,如:.s_ipt
5.css直接用标签名称,无任何标示符,如:input
二、css:其它属性
1.css除了可以通过标签、class、id这三个常规属性定位外,也可以通过其它属性定位;
2.以下是定位其它属性的格式;
三、css:标签
1.css页可以通过标签与属性的组合来定位元素;
四、css:层级关系
1.在前面一篇xpath中讲到层级关系定位,这里css也可以达到同样的效果;
2.如xpath://form[@id='form']/span/input 和 //form[@class='fm']/span/input 也可以用css实现;
五、css:索引
1.以下图为例,跟上一篇一样;
2.css也可以通过索引option:nth-child(1)来定位子元素,这点与xpath写法用很大差异,其实很好理解,直接翻译过来就是第几个小孩;
六、css:逻辑运算
1.css同样也可以实现逻辑运算,同时匹配两个属性,这里跟xpath不一样,无需写and关键字;
希望我的回答对你有帮助
绛旓細autocomplete="off"]涓銆css:灞炴瀹氫綅 1.css鍙互閫氳繃鍏冪礌鐨刬d銆乧lass銆佹爣绛捐繖涓変釜甯歌灞炴х洿鎺ュ畾浣嶅埌锛2.濡備笅鏄櫨搴﹁緭鍏ユ鐨勭殑html浠g爜锛 3.css鐢#鍙疯〃绀篿d灞炴,濡傦細#kw 4.css鐢.琛ㄧずclass灞炴э紝濡傦細.s_ipt 5.css鐩存帴鐢ㄦ爣绛惧悕绉帮紝鏃犱换浣曟爣绀虹锛屽锛歩nput 浜屻乧ss:鍏跺畠灞炴 1.css闄や簡鍙互閫氳繃...
绛旓細1. 浣跨敤CSS閫夋嫨鍣ㄧ殑閮ㄥ垎鍖归厤鍔熻兘 濡傛灉ID鎴栫被鍚嶇殑涓閮ㄥ垎鏄潤鎬佺殑锛屼綘鍙互鍒╃敤CSS閫夋嫨鍣ㄧ殑鈥滃寘鍚濓紙*=锛夈佲滃紑濮嬩簬鈥濓紙^=锛夋垨鈥滅粨鏉熶簬鈥濓紙$=锛夌壒鎬ф潵杩涜鍏冪礌瀹氫綅銆傚寘鍚煇鏂囨湰鐨勫睘鎬у:driver.find_element_by_css_selector("ul[id*='閮ㄥ垎ID']")浠ユ煇鏂囨湰寮澶寸殑灞炴у:driver.find_element_by_...
绛旓細1. 椤甸潰鍏冪礌瀹氫綅鏂瑰紡涓嶅悓锛氬湪Python涓畾浣鍏冪礌鐨勬柟娉曟湁寰堝绉嶏紝甯歌鐨勬湁xpath銆css_selector銆乮d銆乶ame绛夈傚鏋滃湪Python涓兘澶熷畾浣嶅埌鍏冪礌B锛屼絾鏄湪Dbug涓棤娉曞畾浣嶅埌锛岄偅涔堝彲鑳芥槸Dbug涓殑瀹氫綅鏂瑰紡鍜孭ython涓殑涓嶅悓銆2. 椤甸潰鍔犺浇閫熷害涓嶅悓锛氭湁鏃跺欐垜浠細閬囧埌杩欐牱鐨勬儏鍐碉紝鍗冲湪Python涓兘澶熸垚鍔熷畾浣嶅埌鍏冪礌锛...
绛旓細1銆佷紶缁 BeautifulSoup 鎿嶄綔 缁忓吀鐨 BeautifulSoup 鏂规硶鍊熷姪 from bs4 import BeautifulSoup锛岀劧鍚閫氳繃 soup = BeautifulSoup(html, "lxml") 灏嗘枃鏈浆鎹负鐗瑰畾瑙勮寖鐨勭粨鏋勶紝鍒╃敤 find 绯诲垪鏂规硶杩涜瑙f瀽銆2銆佸熀浜 BeautifulSoup 鐨 CSS 閫夋嫨鍣 杩欑鏂规硶瀹為檯涓婂氨鏄 PyQuery 涓 CSS 閫夋嫨鍣ㄥ湪鍏朵粬妯″潡鐨勮縼绉浣跨敤锛...
绛旓細鐩存帴鐢chrome鎴栬協irebug鎵惧嚭璺緞锛岀幇鍦ㄥ緢灏戞墜鍔ㄦ壘浜嗐傜劧鍚巉ind_element_by_css_selector("璺緞").click
绛旓細杩欎釜鏄墠鍙扮殑涓滆タ锛宧tml+css銆俰nput鏄鍐呭厓绱犮傚閮ㄥ寘瑁筪iv鏉ュ疄鐜瀹氫綅鍚с
绛旓細css瀹氫綅锛宒river.find_element_by_css_selector(ul[role="menu"][id="item_3$Menu"]>li:nth-child(2))瀹氫綅闆嗘垚鐜灏辨敼鎴恈hild(1)瀹氫綅鍔熻兘鐜灏辨敼鎴恈hild(2)濡傛灉鍏冪礌role鍜宨d骞跺垪涓嶈兘瀹氫綅锛岄偅灏卞啀鍔犱釜鏂规嫭鍙凤紝閲岄潰copy涓奵lass灞炴э紝鏍峰紡鍚宺ole锛屽鏋滆兘鎵惧埌ul鍏冪礌锛岃偗瀹氬彲浠ュ畾浣嶈繖2涓厓绱 ...
绛旓細绫诲悕鏈変簡锛岀洿鎺ヨ幏鍙栧煎氨琛屼簡
绛旓細锛屽彇j-inputtext 鍜宒lemail閮芥槸鍙互鐨勶紝杩欐牱杩欎釜class灞炴у湪椤甸潰涓婂敮涓灏辫 浣跨敤>閫夋嫨涓涓瓙鍏冪礌,鑰屼娇鐢ㄧ┖鏍煎皢閫夋嫨浠讳綍绾у埆鐨勫祵濂楀厓绱.渚嬪鈥﹀湪閫夋嫨鍣ㄤ腑浣跨敤␣/绌烘牸鈥his will be selected This will be selected as well 鎵浠ュ湪杩欓噷,鍏锋湁绌烘牸鐨勯夋嫨鍣ㄥ皢鍦ㄧ埗鍏冪礌鐨勪换浣曞祵濂楃骇鍒瀹氫綅div.
绛旓細鐢浠栫殑selenium鐨剋ebdriverd鐨凙PI锛屽彲浠ユ槸css path瀹氫綅锛屼篃鍙槸xpath瀹氫綅锛岃繕鍙互鏍规嵁ID瀹氫綅绛夌瓑