[英]Using Selenium, xpath cannot find 'text' element
我是Selenium的新手,无法通过XPath查找元素。 我试图处理此问题,但花了太多时间,但仍然无法正常工作。
我试图自动文件从网上下载该网站。
我正在搜索包含版本名称的元素,然后需要相应地单击下载图标。
我正在编写以下代码以查找元素
var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div[3]/a[Text()='Firefox 22.0 (Beta 2)']"));
但是,它不起作用,找不到元素。
然后,我需要相应地单击下载图标。 我不确定如何单击与当前版本的Firefox相关的元素。 有什么建议么?
您为什么不使用By.linktext
,对我来说似乎容易得多?
driver.findElement(By.linkText("Firefox 22.0 (Beta 2)")).click();
但是,您的XPath无法正常工作的原因是它不适合网页的结构。 div[3]
并不表示一个层次结构中一个接一个的三个div,而是表示下一个层次结构中的第三个div
。 您将需要这样的东西
var element1 = driver.FindElement(By.XPath("//*[@id='versiontable']/div/div/div/a[text()='Firefox 22.0 (Beta 2)']"));
首先,xpath函数text()
必须以小写形式编写。
另外,您要查找的链接条目不是第三(3)格。
因为直接下载是div中class =“ right”的链接。
请尝试以下方法:
"//div[div/a[text()='Firefox 22.0 (Beta 2)']]/div[@class='right']/a"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.