javascript - Java selenium 中使用click()方法點(diǎn)擊超鏈接無(wú)效 用window.open() 也打不開頁(yè)面
問題描述
用 a.click(); 無(wú)效 明明其他時(shí)候都可以的
而且就算那我獲取了href 在用js打開也沒反應(yīng) 這是為什么呢 ((JavascriptExecutor)driver).executeScript('window.open(’'+href+'’)'); ((JavascriptExecutor)driver).executeScript('alert(’'+href+'’)'); alert能彈出
但是window.open()就沒反應(yīng) 在網(wǎng)頁(yè)中控制臺(tái)直接敲都好使
問題解答
回答1:window.open()打開的是新標(biāo)簽,你需要切換handles。給你兩個(gè)方法參考:
public static void changeWindow(WebDriver driver){// 獲取當(dāng)前頁(yè)面句柄String handle = driver.getWindowHandle();// 獲取所有頁(yè)面的句柄,并循環(huán)判斷不是當(dāng)前的句柄,就做選取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不了,可能是因?yàn)槟莻€(gè)元素不顯式可見,或者需要聚焦,或你用Selenium操作不當(dāng),不過建議可以嘗試js click
相關(guān)文章:
1. javascript - 在ie下為什么會(huì)出現(xiàn)這種情況呢 《 無(wú)法獲取未定義或 null 引用的屬性“l(fā)ength”》 ?請(qǐng)大神指教。2. css右浮動(dòng)字的順序顛倒了3. javascript - 我是做web前端的,公司最近有一個(gè)項(xiàng)目關(guān)于數(shù)據(jù)統(tǒng)計(jì)的!4. html5和Flash對(duì)抗是什么情況?5. javascript - 只是想用node建立一個(gè)簡(jiǎn)單的服務(wù)器6. MySQL主鍵沖突時(shí)的更新操作和替換操作在功能上有什么差別(如圖)7. javascript - vue過渡效果 css過渡 類名的先后順序8. javascript - vuejs+elementui 購(gòu)物車價(jià)格計(jì)算,點(diǎn)擊加減號(hào)修改數(shù)量總價(jià)都不會(huì)改變,但是計(jì)算執(zhí)行了9. 數(shù)據(jù)庫(kù) - Mysql的存儲(chǔ)過程真的是個(gè)坑!求助下面的存儲(chǔ)過程哪里錯(cuò)啦,實(shí)在是找不到哪里的問題了。10. javascript - 如何使用loadash對(duì)[object,object,object]形式的數(shù)組進(jìn)行比較
