自動化測試的重點就是定位元素,然而定位元素沒辦法一步一步執行除錯檢查,每次都需要從**的開始執行,檢查起來效率極低。
一、xpath
在console中輸入$x(),括號裡面填寫xpath的locator即可。
例如:(1)$x("//input[@id='kw']")
(2)$x("//form[@id='form']/span[1]/input")
當匹配多個時,集合會顯示多個,這時候說明定位不是唯一,需要重新找到唯一定位才能在指令碼中使用
二、css
在console中輸入$$(),括號裡面填寫css的locator即可。
例如:(1)$$("#kw")
(2)$$("form input:nth-child(2)")
當匹配多個時,集合會顯示多個,這時候說明定位不是唯一,需要重新找到唯一定位才能在指令碼中使用
三、css擴充套件
在console中輸入document.quryselector(),括號裡面填寫css的定位即可
例如:1.document.queryselector() #定位單個元素
2.document.queryselectorall() #定位多個元素陣列並定位第幾個
還可以通過js來控制元素,點選和輸入
例如:1)document.queryselectorall("input")[0].value='selenium' #輸入
2)document.queryselectorall("input")[0].click() #點選
既然能夠控制js那也可以完全複製到**裡進行使用,只需要在**前加入selenium操作js的方法
例如:dr.execute_script("document.queryselectorall("input")[0].value='selenium' ") #dr代表定義的瀏覽器驅動
Selenium 元素定位
ui自動化中元素的定位是最最基本,但也是最讓人頭痛的地方。控制項的動態載入,屬性的動態生成抑或因為開發的懶而造成控制項的識別問題總是自動化測試的噩夢。webdriver作為主流的網頁測試工具提供了非常豐富的識別控制項的方法。這次在寫自動化庫的時候也遇到各種定位問題,著實抓狂了一陣,但最終都解決了。雖...
selenium元素定位
單數形式 複數形式,返回的是乙個列表 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 driver.find element by id id屬性值 使用範圍 a.元素有id屬性 b.id不是動態的,為固定值 語法 driver.find element by name name屬性值 ...
selenium元素定位
一,元素定位方式 from selenium import webdriver from selenium.webdriver.support import expected conditions as ec import time driver webdriver.chrome driver.ge...