首頁  >  問答  >  主體

javascript - Java selenium 中使用click()方法點選超連結無效 用window.open() 也打不開頁面

用 a.click(); 無效 明明其他時候都可以的

而且就算那我获取了href 在用js打开也没反应  这是为什么呢
 ((JavascriptExecutor)driver).executeScript("window.open('"+href+"')");  
    ((JavascriptExecutor)driver).executeScript("alert('"+href+"')");  
    
    
alert能弹出

但是window.open()就沒反應 在網頁中控制台直接敲都好使

PHP中文网PHP中文网2692 天前1053

全部回覆(1)我來回復

  • 習慣沉默

    習慣沉默2017-06-05 11:10:28

    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

    回覆
    0
  • 取消回覆