如何定位到下圖第二個"搶投標",有一種方法是利用xpath定位 //a[@href="/loan/loan_detail/id/7190.html" and text()="搶投標"],但是我們注意到,這個鏈結中的7190是id值,而頁面中的id值是可以變化的,因此當標變化時,我們又得重新寫xpath定位表示式了,那麼,有沒有一種更好的方式來解決這個問題,這就需要用到xpath的軸定位
軸名稱描述
ancestor
選取祖先節點(包括父節點)
parent
選取父節點
preceding
選取當前節點標籤之前的所有節點(按html頁面先後順序)
preceding-sibling
選取當前節點標籤之前的所有兄弟節點
following
選取當前節點標籤之後的所有節點(按html頁面先後順序)
following-sibling
選取當前節點標籤之後的所有兄弟節點
例如: //div//table//td//preceding::td
注意:我們不能通過//div[text()="企業3"]/following-sibling::div//span[text()="375萬"]來定位,因為金額是可變的,如果這個標金額變化了,這個表示式就匹配不到了。所以定位時,一定要考慮到哪些是變化的,比如文字內容,元素下標(同乙個span[n]),變化的一定不能作為定位表示式中的一部分,一般利用元素的固定的屬性值來定位
使用js指令碼拖動到指定的地方
第一步:找到這個元素
target = driver.find_element_by_id("第二步:利用jsid_keypair
")
driver.execute_script("arguments[0].scrollintoview();
", target) #
拖動元素到可見元素去
傳送tab鍵切換到密碼框
from selenium.webdriver.common.keys import滾動到頂部:keys
driver.find_element_by_id(
"id_login_method_0
").send_keys(keys.tab)
js = "或者varq=document.documentelement.scrolltop=0"
driver.execute_script(js)
driver.execute_script("滾動到底部:window.scrollto(document.body.scrollheight, 0)
")
js = "或者varq=document.documentelement.scrolltop=10000"
driver.execute_script(js)
driver.execute_script("window.scrollto(0, document.body.scrollheight)
")
from selenium importwebdriver
from time import
sleep
driver =webdriver.chrome()
driver.get(
"")driver.maximize_window()
sleep(2)
#先將滾動條滾動到底部
js_1 = "
varq=document.documentelement.scrolltop=10000
"driver.execute_script(js_1)
sleep(2)
#再將滾動條滾動到頂部
js_2 = "
varq=document.documentelement.scrolltop=0
"driver.execute_script(js_2)
web自動化 元素定位
x 和 都是chrome開發者工具提供的方法定位元素的時候 根據自己的需求定位到唯一 的乙個元素或者符合自己需要的一組元素。絕對路徑 html開頭表示,從html文件的根節點開始進行查詢,直到找到想要的元素 相對路徑 開頭,表示從html文件的任意位置進行查詢,如果在表示式中間出現77表示從 之前的...
Web自動化之元素定位
前提 元素或屬性必須唯一 八種元素定位方式 id,name,link text,partial link text,xpath,css,class name,tag name 1 id 定位 html規定id 是唯一標識 每個 id都是不一樣的 這類似公民的身份證號,具有很強的唯一性。定位 name...
web自動化測試之元素定位
貼吧 序號 方式 舉例 1通過id定位 driver.find element by id kw 2通過name定位 find element by name wd 3通過class定位 find element by class name s ipt 4通過xpath定位 find element...