8.元素的操作
對元素的相關操作,一般要選獲取到元素,再調用相關方法
element = driver.find_element_by_xxx(value)
1)點擊和輸入
點擊操作-------->element.click()
清空/輸入操作:
element.click()------------->清空輸入框
element.send_keys(data)------->輸入數(shù)據(jù)
提交操作:element.submit()
9.多標簽之間的切換
1.獲取所有窗口的句柄
handles=driver.window_handlers
調用該方法會得到一個列表,在selenium運行過程中的每一個窗口都有一個對應的值存放在里面。
2.通過窗口的句柄進入的窗口
driver.switch_to_window(handles[n])
driver.switch_to_window(handles[n])
通過窗口句柄激活進入某一窗口
10.多表單切換?
在網(wǎng)頁中,表單嵌套是很常見的情況,尤其是在登錄場景。
10.1什么是多表單
實際上就是使用iframe/frame,引用了其他頁面的鏈接,真正的頁面數(shù)據(jù)并沒有出現(xiàn)在當前源碼中,但是在瀏覽器中我們看到,簡單理解可以使頁面中開了一個窗口顯示另一個頁面。
10.2處理方法
直接使用id值切換進表單
driver.switch_to_frame(value)/driver.switch_to_frame(value)
定位到表單元素,再切換進入
el = driver.find_element_by_xxx(value)
driver.switch_to_frame(el)/driver.switch_to_frame(el)
11.彈出框操作
1.進入到彈出框中
driver.switc_to.alert
2.接受警告
accept()
3.解散警告
dismiss()
發(fā)送文本到警告框
send_keys(data)
用法:driver.switch_to.alert.accept()
14.瀏覽器等待
1.為什么要進行等待
網(wǎng)速慢、網(wǎng)站內(nèi)容過多、如果不進行等待而直接定位元素,可能會拋出異常
2.selenium中等待的分類:
1.顯示等待
顯示等待是根據(jù)條件進行等待,等待條件出現(xiàn)
WebDriverWait類是由WebDirver 提供的等待方法。在設置時間內(nèi),默認每隔一段時間檢測一次當前頁面元素是否存在,如果超過設置時間檢測不到則拋出異常。
2.隱式等待
隱式等待是根據(jù)是件進行等待,等待特定時間
n的單位為秒,n為最大值,在這個最大值內(nèi)只要該界面上的全部元素都加載完成定就結束沒有加載出元素就拋出 NosuchException.