1

我编写了一个 selenium 测试,它导航到一个页面,打开一个链接(在一个新选项卡中),切换到该选项卡并截取屏幕截图。它已经工作了几个月。突然就不行了。似乎我在切换到这个新选项卡后尝试在它上执行的任何操作(与元素交互、刷新页面、导航到新页面)都会导致 TimeOutException 错误。

我尝试等待更长的时间来加载选项卡,我尝试导航到选项卡并在与它交互之前刷新(这导致我发现在选项卡切换后我什至不能做那么多),我已经尝试更改我的 chrome 和 chromedriver 版本(目前在 Chrome v73 和 chromedriver 2.46.628402 上)。仍然收到 TimeOutException。

这是我的代码(截图代码替换为刷新,因为结果相同):

@Test 
public void ExternalLinkScreenshot() throws Exception{

    driver = getDriverByName(CHROME);

    WebDriverWait wait = new WebDriverWait(driver, 30);

    driver.navigate().to("www.mywebsite.com");
    wait.until(ExpectedConditions.elementToBeClickable(By.linkText("My Link")));
    driver.findElement(By.linkText("My Link")).click();
    TimeUnit.SECONDS.sleep(3);

    Set<String> handles = driver.getWindowHandles();
    String originalHandle = driver.getWindowHandle();

    for (String handle : handles) {

        if (!handle .equals(originalHandle))
        {
            driver.switchTo().window(handle); 

        } 

    }       

    driver.navigate.refresh(); 


    for(String handle : driver.getWindowHandles()) {

        if (!handle.equals(originalHandle)) { 

           driver.switchTo().window(handle); 

           driver.close(); 

        } 

    }

    driver.switchTo().window(originalHandle);
4

0 回答 0