提问者:小点点

使用当前版本的Chrome时返回错误


我运行一个回归包的在线应用程序使用ChromeDriver版本42.0.2311.90 m的谷歌Chrome,并有问题时,试图将焦点从iFrame返回到主屏幕,即在打代码驱动程序行。

这在Chrome的早期版本上完美地工作,并且在具有版本39. x.etc的同事PC上仍然可以正常工作

有人遇到过类似的情况吗?如果是这样,任何帮助/建议/解决方法都将不胜感激。

特定Java方法的代码是:

@When("I click the $buttonText button in AllFinanz")
public void clickButtonInAllFinanz(String buttonText) throws InterruptedException {
     System.out.println("[TEST] Clicking " + buttonText);
     try {
          // access inside iframe
          WebElement elementFrame = driver.findElement(By.xpath("//iframe[contains(@onload, 'riskAssessmentIframe')]"));
  driver.switchTo().frame(elementFrame);

           // click the button
           WebElement button = driver.findElement(By.xpath("//input[@value='" + buttonText + "']"));
           button.click();

           // return focus to main window
           driver.switchTo().defaultContent();

   Thread.sleep(sleepTime*5);
           System.out.println("[SUCCESS] Clicked button " + buttonText);

     } catch (org.openqa.selenium.NoSuchElementException e) {
          System.out.println("[FAILURE] Unable to click button " + buttonText);
     } catch (org.openqa.selenium.ElementNotVisibleException e) {
          System.out.println("[FAILURE] " + buttonText + " not visible");
     }
}

如前所述,所有工作都很好,直到驱动程序. SwitchTo().defaultContent();代码行,其中抛出以下错误:

org. openqa.selenium.WebDriverException:未知错误:缺少'id'(会话信息:chrome=42.0.2311.90)(驱动程序信息:chromeriver=2.10.267521,平台=Windows NT 5.1 SP3 x86)(警告:服务器没有提供任何堆栈跟踪信息)系统信息:os.name:'Windows XP',os.arch:'x86',os.version:'5.1',java.version:'1.7。0_45驱动程序信息:驱动程序版本:RemoteWebDriver

再一次,任何帮助都将不胜感激——我已经用完了各种解决办法,在谷歌搜索时找不到任何答案。

谢谢你Barry


共2个答案

匿名用户

作为例外,您的ChromeVer为42,ChromeDriver为2.10。根据以下更改说明,ChromeDriver 2.10最多支持36个。

http://chromedriver.storage.googleapis.com/2.10/notes.txt

好使用最新的chrome驱动程序,让我们看看它是否工作正常。

谢啦

匿名用户

尝试。

await driver.wait(until.alertIsPresent());    
el = driver.switchTo().alert();
await el.accept();

查看所有语言的文档https://www.selenium.dev/documentation/en/webdriver/js_alerts_prompts_and_confirmations/