当我遇到以下警告时,我正在使用Selenium自动化网站:我无权访问该页面的HTML。我需要在第一个字段中输入一个数字,然后选择“展开”按钮。
当我打开对话框时,我注意到焦点在文本框上,所以我尝试了:
Actions actions = new Actions(driver);
Alert alert = driver.switchTo().alert();
actions.sendKeys(Integer.toString(2));
actions.sendKeys(Keys.TAB);
actions.sendKeys(Keys.ENTER);
但是,这并没有最终将信息输入字段或选择“展开”,但它也没有使应用程序崩溃。
我也尝试过:
Alert alert = driver.switchTo().alert();
alert.sendKeys(Integer.toString(2));
alert.accept();
这确实导致应用程序崩溃,并返回错误: 模态对话框没有文本框 - 可能是警报。
您有什么方法可以考虑与警报互动吗?
编辑:新窗口似乎允许我使用driver.switchTo().alert()
和driver.switchTo().window("genericWindowHandle")
。我不确定这是否正常,或者它是否有助于确定此警报/窗口实际上是什么。
答案 0 :(得分:1)
这显然是一个窗口 - 注意标题栏。除此之外,您可以通过查看快速启动选项栏(通常位于Mac和Windows屏幕底部)轻松验证它是否是一个窗口。将识别一个新窗口,但不会出现一个对话框。
这看起来像一个窗口,你拥有的是正常的和预期的。
答案 1 :(得分:0)
我遇到了这个问题,其中页面标题是与您相同的网页对话框。在此窗口中,您无法检查元素。 解决方法是转到
Internet Explorer-->
Internet Options -->
Security tab -->
Custom Level -->
Disable the option : Allow Websites to open windows without address or status bar
现在,您可以在IE中通过F12检查元素。 现在,只需编写所有selenium命令, 您也可以使用JavaScriptExecutor,如果您对话框调用JavaScript。