java - 一旦调用了 driver.get(URL) 方法,Selenium Java Client 就不会取回控制权
问题描述
driver.get("MyURL");
System.out.println("URL is opened");
executeAutoItScript(scriptFileLocation);
当我打开 URL 时,我会弹出一个 Authentication Required 弹出窗口。为了处理这个问题,我正在使用 AutoIt 脚本。但问题是只要第一个命令
(driver.get("MyURL");)
执行后,Chrome 将打开并出现身份验证弹出窗口。我观察到第二行
System.out.println("URL is opened");
没有被执行。我对其进行了调试并观察到控制权没有从
driver.get("MyURL");
它挂在那里。我改变了 driver.get("MyURL"); 到 driver.navigate().to("MyURL"); 但没有运气。谁能帮我解决这个问题。附件是弹出的屏幕截图。
解决方案
根据您的代码试验和浏览器快照,浏览器客户端(即Google Chrome 浏览器)似乎没有将控件返回给WebDriver实例,随后Selenium Java 客户端无法达到'document.readyState'
等于的状态"complete"
。因此,您的下一行代码都不是:
System.out.println("URL is opened");
正在执行,也不是下一行的AutoIt 脚本:
executeAutoItScript(scriptFileLocation);
解决方案
您的问题尚不清楚此Authentication Popup的来源。也许在讨论Selenium - Basic Authentication via url之后,您可以传递嵌入在URL中的用户名和密码,如下所示:
driver.get("http://admin:admin123@MyURL");
推荐阅读
- java - 如何将两个表记录映射到java对象列表
- go - VS Code Go 扩展由于无法更改 go.mod 而无法加载?
- c - 为什么用浮点数除以整数会导致浮点数?
- asp.net-core - 如何在 Azure AD 中使用自定义 IUserRoleStore
- rust - 当忽略某些值时,如何在迭代器实现中避免不必要的昂贵操作?
- javascript - Apache Synapse 中没有 setPayloadJSON()
- python-3.x - 按年重设的累计金额
- bash - 如何在 '< 之间调用代码
我想使用“调用系统”在“<<EOF ... EOF”之间调用代码以使用gnuplot(没有file.plt)进行绘图。以下是我希望与“呼叫系统”一起使用的代码的一般示例:
gnuplot -persist <<EOF set title "graf
- r - 如何创建一个向量,用 R 中的某个值替换所有值与 NA 和 NA
- algorithm - 求解运行时间 Big Theta 表示法