繁体   English   中英

使用Selenium,xpath找不到'text'元素

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM