Selenium webdriver Selenium WebDriver无法在iframe中找到元素,并引发NosTouchElementException

Selenium webdriver Selenium WebDriver无法在iframe中找到元素,并引发NosTouchElementException,selenium-webdriver,Selenium Webdriver,我意识到,对于同一个问题,这里有几个问题,但没有一个能解决我的特定问题 我正在运行一个web驱动程序测试,该测试尝试填写邮件网站的表单,以便根据地址详细信息查找邮政编码。在尝试查找第一个文本框时,我一直遇到此错误: org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"#ctl00_BodyContent_txtBuildingNumbe

我意识到,对于同一个问题,这里有几个问题,但没有一个能解决我的特定问题

我正在运行一个web驱动程序测试,该测试尝试填写邮件网站的表单,以便根据地址详细信息查找邮政编码。在尝试查找第一个文本框时,我一直遇到此错误:

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"css selector","selector":"#ctl00_BodyContent_txtBuildingNumber"}
我已经使用了xpath和id来尝试定位元素,但是我不断地得到错误。当webdriver运行时,我可以看到这个元素存在,并且我已经能够在页面上找到另一个文本元素并输入文本,但是我一直收到这个字段和框架中其他字段的错误

我猜问题一定与这个字段是iFrame的一部分这一事实有关


我在测试中使用了隐式等待,但没有成功。我仍然得到了错误。

根据它的声音,您需要首先切换到包含要与之交互的元素的
iframe
元素。(虽然没有看到相关的HTML,这只是一个推测)

例如:

当您完成与框架中的元素的交互后,您需要切换回主网页

driver.switchTo().defaultContent();
检查xpath。 尽量使用简单的语言

 driver.switchTo().frame(1);

通过等待语句。

以下内容对我有效

driver.switchTo().frame(myd.findElement(By.xpath("//*[@id='page-15']/div/p/iframe")));
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='page-15']/div/p/iframe")));
/*[@id='page-15']/div/p/iframe
是我试图单击按钮的帧的xpath。(
driver
是WebDriver类型,即
WebDriver

谢谢你

很抱歉做了一点修改,以下内容对我很有用

driver.switchTo().frame(myd.findElement(By.xpath("//*[@id='page-15']/div/p/iframe")));
driver.switchTo().frame(driver.findElement(By.xpath("//*[@id='page-15']/div/p/iframe")));

/*[@id='page-15']/div/p/iframe
是我试图单击的按钮所在帧的xpath。(驱动程序类型为WebDriver,即WebDriver驱动程序)谢谢

您可以使用wait语句,使用wait语句后只需使用


driver.swithcTo().frame()

谢谢你,马克。不过我还是有问题。我使用并获得了org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“id”,“选择器”:“aspnetForm”}。您是否可以为表单及其周围的标记提供一个html片段以确保。谢谢,当然可以。希望这就是你需要的。。url是,它是查找邮政编码表单。啊,是的,在页面顶部有一个
iframe
元素,它限制了您想要与之交互的表单。尝试
driver.switchTo().frame(driver.findElement(By.id(“pca-iframe”))
有些人也喜欢将框架分配给
webDriver的新实例,以保持整洁,但我认为这是个人偏好。只是想确认您的元素是否会动态更改??清除缓存并检查元素是否更改了xpath。您可以通过添加进一步的解释来改进答案,如:e标记和文档链接。