当前位置: 首页 > 知识库问答 >
问题:

无法找到使用Webdriver通过ajax生成的表元素

焦光霁
2023-03-14

我是新的Webdriver,我不能让你知道的网站名称和凭据,因为这是一个正在进行的项目,我的公司。我陷入了一个位置,在该网站的一个页面中,有一个通过ajax在运行时生成的表,其中的所有数据也是在运行时生成的,该表中有一个元素,其xpath为html/body/main/section[2]/div/div/div[2]/table/tbody/tr[1]/td[1]/a,但当我试图使用webdriver查找该元素时,webdriver无法找到该元素,并且我得到一条错误消息,如下所示

org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"html/body/main/section[2]/div/div/div[2]/table/tbody/tr[1]/td[1]/a"}
Command duration or timeout: 50.10 seconds
Capabilities [{platform=XP, acceptSslCerts=true, javascriptEnabled=true, browserName=firefox, rotatable=false, locationContextEnabled=true, version=14.0.1, cssSelectorsEnabled=true, databaseEnabled=true, handlesAlerts=true, browserConnectionEnabled=true, nativeEvents=false, webStorageEnabled=true, applicationCacheEnabled=true, takesScreenshot=true}]
 Assert.assertEquals(FrameWorkBase.driver.findElement(By.xpath("html/body/main/section[2]/div/div/div[2]/table/tbody/tr[1]/td[1]/a")).getText(),24514);

共有1个答案

东门焕
2023-03-14

如果表是Ajax生成的,也许您应该实现某种waitforelement而不是简单的findelement?在我的测试中,我编写了一个等待jQuery就绪的方法,它工作得非常好。我怀疑您的例外情况的原因是当您试图查找该元素时该元素根本不存在。

您也可以尝试先获得一个更高级的元素,然后再进行更深入的工作。这样,您就可以获得缺少什么元素的线索,并了解需要进行何种等待。

 类似资料:
  • 问题内容: 以下是使用Java的WebDriver代码段: 执行代码后,出现以下异常: 线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到元素:{“方法”:“ xpath”,“选择器”:” // html / body / div [2] / span / center / form / table / tbody / tr / td

  • 问题内容: 我正在尝试选择一个包含锚点的元素,但文本被埋在div内的一个段落中。这是我正在使用的HTML: 我用来尝试捕获的代码针对的是“ Smoke Sequential”文本,其内容为: 变量“服务”中包含“烟雾顺序”的位置。运行它时,出现以下错误: 任何帮助将不胜感激。 问题答案: 问题可能出在html的其余部分,您没有发布的部分。 在此示例中(我刚刚关闭了打开的标签): 我可以轻松找到该元

  • 我的自动化测试有问题,我的测试通过Eclipse运行没有问题。 但是当我想在Jenkins上运行这个测试时,它总是在同一行(在同一个选择器上)失败。 在端口21173上运行TestSuite启动ChromeDriver2.21.371459 (36d3d07f660ff2bc1bf28a75d1cdabed0983e7c4)仅允许本地连接。测试运行: 1,失败: 1,错误: 0,跳过: 0,时间流

  • 我会收到以下错误消息: el=self.driver.find_element_by_xpath(element_query)文件“/usr/local/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py”,第393行,在find_element_by_xpath中返回self.find_element(by=by.

  • 问题内容: 我正在尝试抓取以下网站:https : //www.bancosantander.es/es/particulares/prestamos/prestamo- coche/simulador 我正在尝试做的是: 通过移动滑块来模拟数量和持续时间。我正在尝试使用网络驱动程序找到它们。 但是我不能,事实上我已经开始抓取了。 出现的错误如下: 我的代码: 问题答案: 您可以尝试以下方法输入值

  • 问题内容: 我正在使用mpdf库生成用户生成的html的PDF。我可以使PDF成功保存到服务器,但是我希望PDF在用户浏览器中打开。我尝试使用mpdf的输出选项在浏览器中打开文件或提示下载,但是当我使用AJAX将html数据发送到脚本时都没有发生。 这是我的AJAX: 这是我的PDF生成脚本: 我正在使用AJAX,因此无需浏览页面即可创建PDF。我的代码中是否有错误,还是应该使用其他方法? 问题答