Java selenium firefox模式显示为弹出窗口,而不是模式
我正在尝试使用Selenium在一个包含多个页面的网站上测试表单。根据所选的选项,假设某些页面上会出现模态。目前,我很难让Selenium与Fireforx和modals正常工作。Chrome的表现与预期相符,我还没有为IE而烦恼Java selenium firefox模式显示为弹出窗口,而不是模式,java,selenium,modal-dialog,Java,Selenium,Modal Dialog,我正在尝试使用Selenium在一个包含多个页面的网站上测试表单。根据所选的选项,假设某些页面上会出现模态。目前,我很难让Selenium与Fireforx和modals正常工作。Chrome的表现与预期相符,我还没有为IE而烦恼 当我使用Firefox手动浏览页面时,一切都按预期进行 当我运行Selenium脚本时,模式显示为Windows弹出窗口,而不是模式 我正在使用driver.switchTo().alert().accept()来处理模态,我遇到的第一个模态将关闭,但是一旦我进入
- 当我使用Firefox手动浏览页面时,一切都按预期进行
- 当我运行Selenium脚本时,模式显示为Windows弹出窗口,而不是模式李>
public void pushButton(String[] values) {
System.out.println("\t Click (" + values[1] + ")");
setLocator(values[0], values[1]);
try {
clickWhenReady(locator).click();
} catch (Exception e) {
System.out.println("Could not find id or xpath value: " + values[1]);
e.printStackTrace();
}
}
private void setLocator(String byType, String value) {
if(byType.toUpperCase().equals("ID")) {
locator= By.id(value);
} else if(byType.toUpperCase().equals("XPATH")){
locator= By.xpath(value);
}
}
private WebElement whenReady(By locator){
WebElement element = (new WebDriverWait(driver, 30))
.until(ExpectedConditions.presenceOfElementLocated(locator));
return element;
}
private WebElement clickWhenReady(By locator){
WebElement element = (new WebDriverWait(driver, 30))
.until(ExpectedConditions.elementToBeClickable(locator));
return element;
}
首先,
modals
不是alerts
所以,driver.switchTo().alert().accept()代码>可能不会给你买任何东西
真正的问题可能是modals淡出和阻塞Selenium
与页面交互所需的时间更长。您最好的选择是尝试等待模态从dom中完全消失,然后尝试与元素交互。为此,您可以使用ExpectedConditions
的invisibilityOfElementLocated
或类似机制。看