我正在使用ChromeDriver在版本42.0.2311.90米的谷歌浏览器上运行在线应用程序的回归包,并且在尝试将焦点从iFrame返回到主屏幕时遇到问题,即在点击线路时码 的 driver.switchTo()defaultContent();
这在早期版本的Chrome上完美运行,并且在版本39.x.etc
的同事电脑上仍能正常使用还有其他人遇到过类似的东西吗?如果是这样,我们将非常感谢任何帮助/建议/解决方法。
特定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");
}
}
如上所述,所有工作都很好,直到driver.switchTo()。defaultContent();代码行,其中抛出以下错误:
org.openqa.selenium.WebDriverException:未知错误:缺少'id' (会议信息:chrome = 42.0.2311.90)(驱动信息: chromedriver = 2.10.267521,platform = Windows NT 5.1 SP3 x86)(警告: 服务器没有提供任何堆栈跟踪信息)系统信息: os.name:'Windows XP',os.arch:'x86',os.version:'5.1', java.version:'1.7.0_45'驱动程序信息:driver.version:RemoteWebDriver
再一次,任何帮助都会受到赞赏 - 我已经没有想法重新解决问题了,并且在谷歌搜索时无法找到任何答案。
谢谢, 百里
答案 0 :(得分:0)
根据例外情况,Chrome Ver为42,ChromeDriver为2.10。根据以下更改说明,ChromeDriver 2.10最多支持36个。
http://chromedriver.storage.googleapis.com/2.10/notes.txt
很高兴使用最新的chromedriver,让我们看看它是否正常工作。
由于
答案 1 :(得分:0)
尝试。
await driver.wait(until.alertIsPresent());
el = driver.switchTo().alert();
await el.accept();
查看所有语言https://www.selenium.dev/documentation/en/webdriver/js_alerts_prompts_and_confirmations/的文档