亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Selenium--cssselector

系統 2467 0
? ? CSS(即層疊樣式表Cascading Stylesheet) Selector來定位(locate)頁面上的元素(Elements)。Selenium官網的Document里極力推薦使用CSS locator,而不是XPath來定位元素,原因是CSS locator比XPath locator速度快,特別是在IE下面(IE沒有自己的XPath 解析器(Parser))。有很多跟Selenium相關的Blog文章都有提到使用CSS Selector的技術。之前我不會CSS Selector,甚至一看到CSS就頭疼。但我相信用CSS Selector能非常精準的定位到我想測試的Elements。因為前端開發人員就是用CSS Selector設定頁面上每一個元素的樣式,無論那個元素的位置有多復雜,他們能定位到,那我也能定位到。
讀一下這個文檔就能明白大部分的CSS Selector了
http://www.w3.org/TR/css3-selectors/
?
如果button上有class屬性的,如:
?<button id="ext-eng=1026" class="x-right-button"...>
可以這樣寫:
css=button.x-right-button
.代表class
?
如果class里帶的空格,用.來代替空格如:
<button class="x-btn-text module_picker_icon">...
可以這樣寫:
css=button.x-btn-text.module_picker_icon
?
?
如果想用別的屬性值定位,用方括號【屬性名=屬性值】的方式,如:
<abbr>Abc<abbr/>
css=abbr[title="Abc"]
?
如果button上有id屬性的,如:
<input id="ag_name" type="text"...>
可以這樣寫:
css=input#ag_name ?
或者直接寫?
css=#ag_name
#代表id
但是在實際應該中,如果有元素固定id的,可以直接用id locator,這樣寫:
id=ag_name
這通常是在Form里的input元素, 需要用戶填寫內容然后提交的部分,也是最簡單的部分。
?
沒有固定id的,通常是由javascript框架自動生成的id如,每次加載頁面都會改變的,如:
<button id="ext-eng-1026" >, 下回可能就是<button id="ext-eng-2047">
這種情況不能使用id屬性來定位。
?
如果你想定位一個顯示OK的Button,但頁面上有幾個Button,id是自動生成的,class是一樣的,我又想用一個簡單點的CSS locator的時候,
<button id="ext-eng-1026" class="x-right-button">OK</button>
<button id="ext-eng-1027" class="x-right-button">Cancel</button>
?
可以這樣寫:?
css=button.x-right-button:contains("OK")
:contains是個Pseudo-class,用冒號開頭,括號里是內容。
Pseudo-classes是CSS提供的偽類,用來訪問頁面上DOM tree之外的信息,還有Pseudo-elements 用來最精準的定位頁面上的某一行文字,甚至某一行文字的第一個字母。我也是昨天頭一回聽說有這玩意兒,具體可以研究一下css3 selector文檔的Chapter 6.6 Pseudo-classes 和 Chapter 7 Pseudo-elements
?
?
基本上用XPath能定位的元素,都能用CSS Selector定位到。
它兩最相似的是這樣寫:?
<table><tr><td><div><span>abcd</span><span>1234</span></div></td></tr></table>
xpath=//table/tr/td/div/span[1]
css=table>tr>td>div>span:nth-child(1)
?
一個非常好的blog,不看可惜了。
http://saucelabs.com/blog/index.php/2009/10/selenium-tip-of-the-week-start-improving-your-locators/
?
綜上所述,就是:
有固定id的用id selector,?
沒有固定id的用css selector。?
Pseudo-selements :contains()很好用。
會了這幾下子,基本上定位就不成問題了。
?
轉載別人的,解決了我的問題,感覺對初學者都很有用,記錄了。

Selenium--cssselector


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品久久久久久久免费大片 | 狠狠干艹| 中国美女一级毛片 | 欧美一区二区三区网站 | 日韩特级毛片免费观看视频 | 一级做a爱片久久毛片 | 久久精品久久精品 | 有码在线 | 久久99精品久久久久久噜噜 | 久久这里有精品视频 | 在线观看亚洲精品专区 | 久久综合九色综合97婷婷群聊 | 久久精品免视着国产成人 | 久久综合色网 | 国产午夜精品一区二区 | 色婷婷一区二区三区四区成人 | 在线国产中文字幕 | 色婷婷色婷婷 | 亚洲五月综合缴情婷婷 | 久99久视频 | 亚欧毛片基地国产毛片基地 | 免费福利影院 | 国产亚洲免费观看 | 久久r8这里只精品99re66 | 奇米奇米777| www.四虎.com | 国产一级精品高清一级毛片 | 中文字幕在线精品视频入口一区 | 国产成人久视频免费 | 欧美一级视频免费看 | 久久久久日韩精品无 | 国产91免费在线观看 | 欧美jizz18性欧美 | 久久久亚洲伊人色综合网站 | 久久在线精品 | 成人一级 | 中文字幕亚洲精品日韩精品 | 欧美精品综合 | 99精品高清不卡在线观看 | 久草在线观看视频 | 国产图片综合区 |