gpt4 book ai didi

java - 无法使用java在selenium中定位元素

转载 作者:太空宇宙 更新时间:2023-11-04 11:28:41 24 4
gpt4 key购买 nike

我的问题是关于在网页中定位 Web 元素(浏览按钮)以便使用 Selenium(Java) 上传文件,但是当我的控件切换到包含浏览按钮的特定窗口时,没有任何元素被定位。我正在共享用于定位浏览按钮的 HTML 代码以及用 java 编写的脚本(使用 eclipse 软件)。我收到的错误是“没有此类元素异常”。如果您需要有关该问题的更多详细信息,请告诉我。我实际上是通过单击“添加新文件”链接打开“ checkin 文件”窗口,但问题是控件没有传递到此窗口。

下面是Java代码:

//Step 5: Click the Browse Button
for(String browseWindowHandle : driver.getWindowHandles())
driver.switchTo().window(browseWindowHandle);
driver.manage().window().maximize();
WebElement clickBrowseButton=driver.findElement(By.name("bfile0"));
wait.until(ExpectedConditions.visibilityOf(clickBrowseButton));
clickBrowseButton.click();
Runtime.getRuntime().exec("C:\\Users\\tnag\\Desktop\\FileUpload.exe");
//Step 5: Click the Done button in the File Upload window
WebElement addNewFileDone=
driver.findElement(By.xpath("//table/tbody/tr/td/table/tbody/tr/td[2]/a"));
addNewFileDone.click();
Thread.sleep(5000);
System.out.println("addNewFileDone");
}

HTML Code

最佳答案

这是您问题的解决方案-

您需要注意以下几件事:

  1. Click the Browse Button 注释下方的大部分代码块未使用。
  2. 您已启动 for 循环,但尚未构建它。您可能想将其完全删除。
  3. 当您第一次访问 URL 时,
  4. driver.manage().window().maximize(); 应该更早地出现在您的代码中。所以您可能想删除它。
  5. 执行WebElement clickBrowseButton = driver.(...);时,请确保name定位器唯一标识浏览按钮。
  6. Next isDisplayed() 不再需要,因此您可能希望将其删除。
  7. clickBrowseButton.click(); 应该完成所有操作,打开 Windows 文件选择器。
  8. 如果您已正确地将对话框的所有引用传递给 AutoIT,Runtime.getRuntime.exec(...) 肯定会传递该文件。
  9. 根据您的网络应用设计,您可能需要点击上传按钮。

如果这能回答您的问题,请告诉我。

关于java - 无法使用java在selenium中定位元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44061847/

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