web自動化 元素定位 二

2022-03-11 07:38:34 字數 2761 閱讀 9729

如何定位到下圖第二個"搶投標",有一種方法是利用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("

id_keypair

")

第二步:利用js

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 import

webdriver

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...