gpt4 book ai didi

java - seleniumexecuteScript 在 IE 上挂起

转载 作者:行者123 更新时间:2023-12-02 10:53:50 26 4
gpt4 key购买 nike

好的各位,我在网上搜索了两天才解决模态对话框问题。那里有很棒的信息,除了 IE 之外,一切都有效。我正在尝试打开文件上传对话框并选择一个新文件。我创建了 autoIT 脚本,它们在 FF 和 Chrome 上运行得很好。当我尝试使用 IE 时,“executeScript”不会返回到我的测试脚本。在 IE 中,打开“文件上传”对话框。但这就是我的脚本停止的地方。如果我手动运行 autoIT 脚本,它会在“文件上传”对话框关闭后返回到测试脚本。

//WebDriver driver = new FirefoxDriver();
// processPage(driver);
WebDriver ieDriver =new InternetExplorerDriver();
processPage(ieDriver);
// WebDriver chromeDriver = new ChromeDriver();
// processPage(chromeDriver);

。。。其他代码。.

WebElement element = driver.findElement(By.name(uploadDifferntFile));
if (driver instanceof InternetExplorerDriver) {
((InternetExplorerDriver) driver).executeScript("arguments[0].click();", element);

} else if(driver instanceof FirefoxDriver){
((FirefoxDriver) driver).executeScript("arguments[0].click();", element);

} else if(driver instanceof ChromeDriver){
((ChromeDriver) driver).executeScript("arguments[0].click();", element);

}

。。。汽车信息技术。。.

try {
Process proc = Runtime.getRuntime().exec(fileToExecute);
} catch (IOException e) {
System.out.println("Failed to execute autoIT");
e.printStackTrace();
}

感谢大家的支持

最佳答案

它似乎与您在 IE 中的参数 [0].click 操作期间调用的模式对话框有关,请参阅 https://code.google.com/p/selenium/wiki/InternetExplorerDriver ,“单击元素或提交表单和alert()”部分,我认为它描述了相同的问题。

可以尝试的几个选项是:

  1. 将您的 JavaScript 代码替换为“element.click()”或“element.sendKeys(Keys.ENTER)”
  2. 在此之前启动一个新线程argument[0].click,在该线程中稍等一下,然后运行 ​​autoIt代码

您还可以用 JavascriptExecutor 替换现有代码,以便仅编写 JavaSrcipt 一次:

WebElement element = driver.findElement(By.name(uploadDifferntFile));
if (driver instanceof JavascriptExecutor) {
((JavascriptExecutor) driver).executeScript("arguments[0].click();", element);
}

关于java - seleniumexecuteScript 在 IE 上挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672440/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com