javascript - Java selenium 中使用click()方法點擊超鏈接無效 用window.open() 也打不開頁面
問題描述
用 a.click(); 無效 明明其他時候都可以的
而且就算那我獲取了href 在用js打開也沒反應 這是為什么呢 ((JavascriptExecutor)driver).executeScript('window.open(’'+href+'’)'); ((JavascriptExecutor)driver).executeScript('alert(’'+href+'’)'); alert能彈出
但是window.open()就沒反應 在網頁中控制臺直接敲都好使
問題解答
回答1:window.open()打開的是新標簽,你需要切換handles。給你兩個方法參考:
public static void changeWindow(WebDriver driver){// 獲取當前頁面句柄String handle = driver.getWindowHandle();// 獲取所有頁面的句柄,并循環判斷不是當前的句柄,就做選取switchTo()for (String handles : driver.getWindowHandles()) { if (handles.equals(handle))continue; driver.switchTo().window(handles);} } public static void changeWindowTo(WebDriver driver,String handle){for (String tmp : driver.getWindowHandles()) { if (tmp.equals(handle)){driver.switchTo().window(handle);break; }} }
至于click不了,可能是因為那個元素不顯式可見,或者需要聚焦,或你用Selenium操作不當,不過建議可以嘗試js click
相關文章:
1. 我的html頁面一提交,網頁便顯示出了我的php代碼,求問是什么原因?2. java 排序的問題3. tp6表單令牌4. angular.js - Angular路由和express路由的組合使用問題5. docker 17.03 怎么配置 registry mirror ?6. node.js - node 客戶端socket一直報錯Error: read ECONNRESET,用php的socket沒問題哈。。7. 網絡傳輸協議 - 以下三種下載方式有什么不同?如何用python模擬下載器下載?8. 我在centos容器里安裝docker,也就是在容器里安裝容器,報錯了?9. 數據庫 - 使用讀寫分離后, MySQL主從復制延遲會導致讀不到數據嗎?10. django - 后臺返回的json數據經過Base64加密,獲取時用python如何解密~!
