gpt4 book ai didi

java - Selenium - 在执行期间未找到通过 xPath 搜索元素,但在浏览器上找到了它

转载 作者:行者123 更新时间:2023-12-01 09:56:55 26 4
gpt4 key购买 nike

我使用 chrome 驱动程序和 selenium 与 java。

这是我的java代码。当我位于我感兴趣的特定页面上时,它会被执行。

driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys("John");

这是在网站上的特定页面上。

<input type="text" id="fname" name="firstName" placeholder="First Name" data-reactid="....">

问题甚至不在于将文本设置为输入,而在于它根本找不到输入字段。这是错误

org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"xpath","selector":"//input[@name='firstName']"}
Command duration or timeout: 20.04 seconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.53.0', revision: '35ae25b', time: '2016-03-15 16:57:40'

正如您从错误中看到的,我隐式等待了 20 秒,并且我可以看到页面和字段在这段时间内已加载。

所以奇怪的是,当我打开 chrome 并检查元素并通过 xPath 搜索时,使用相同的命令我可以找到该字段(在我的 java 在同一个 chrome 窗口上崩溃的同一页面上)。我可以找到除输入字段之外的所有其他元素。

有什么办法可以解决这个问题吗? selenium 不支持这种输入字段吗?!我不知道该假设什么,非常感谢任何想法!

最佳答案

您需要处理 iframe 才能访问您的元素:

// This way allows you to select an iframe using 'By' and access it.
driver.switchTo().frame(driver.findElement(By.id("frameId")));

// Now you can only handle the iframe elements, like your request
driver.findElement(By.xpath("//input[@name='firstName']")).sendKeys("John");

// After execute all that you need inside the iframe,
// returns you to default html, outside the iframe.
driver.switchTo().defaultContent();

关于java - Selenium - 在执行期间未找到通过 xPath 搜索元素,但在浏览器上找到了它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37145402/

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