iframe切換,xpath函數


了解iframe

iframe是一種html封裝,內嵌頁面,方便相同功能的網頁復用代碼,可以一定程度上減少開發量

所以在測試一個大型web項目的時候,包含iframe標簽就不稀奇,但是在切換frame之前去定位,操作frame中的元素都是無法實現的。

 

切換frame的方式

通過iframe的名字

driver.switch_to.frame('login_frame') driver. find_element_by_xpath("//a[text()='帳號密碼登錄']").click()

 

通過索引去切換iframe標簽

time.sleep(2) driver.switch_to.frame(0)  driver.find_element_by_xpath('//div[@id="wxLoginTab"]').click() driver.find_element_by_xpath('//p[@id="auto_login"]/a').click()

通過element節點去進行切換

ele_iframe = driver.find_element_by_xpath('//iframe[@id="login_frame"]') driver.switch_to.frame(ele_iframe) driver.find_element_by_xpath("//a[text()='帳號密碼登錄']").click()

xpath定位

邏輯運算

and

//a[@class='nav-block' and @title='京東' and @target='_blank']

 

or

//span[text()='推薦' or text()='導航']

 

xpath函數

text() 獲取節點的文本內容 contains(parm1,param2) 判斷param1中是否函授param2 starts-with(參數1,參數2):判斷參數1是否以參數2開頭 # 匹配value屬性包含 ‘addicated’ 的標簽 // input[contains(@value,'addicated')] # 匹配title屬性包含 易購的 a 標簽 //a[contains(@title,易購')] # 匹配文本內容是 五一假期開頭的a標簽 //a[starts-with(text(),'五一假期')]

 

 

切片---后續需要更新

軸定位

定位某個節點/軸名稱 ::節點

 

定位 id = form 的 form節點中,子元素中name=issp的input標簽

//form[@id='form']/child::input[@name='issp']

 

定位id = form的form節點中, 祖先元素中 id =“wrapper”的div標簽

//form[@id='form']/ancestor::div[@id='wrapper']

 

三大等待

1,強制等待 time.sleep()

2,隱式等待 driver.implicitly_wait(30)

driver.implicitly_wait

3,顯示等待

WebDriverWait(driver,30,0.2)

wait.until


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM