href链接的XPATH无法正常工作。获取无效的选择器:应该是一个元素

时间:2019-03-13 16:16:29

标签: java selenium xpath

我正在尝试使this网站上的几种Selenium方案自动化

我试图通过提供以下XPATH来点击“类别”链接

//a[contains(text(), 'CATEGORIES')]/@href

我遇到InvalidSelector错误。您能为此建议一个替代的XPATH吗?

3 个答案:

答案 0 :(得分:1)

您尝试自动执行的页面上的

“类别”部分以文本形式存储在html结构中,因此您可以使用下面的xpath通过匹配其文本来找到它:

WebElement categoriesSection = driver.findElement(By.xpath("//a[text()='CATEGORIES']"));

答案 1 :(得分:1)

使用动作类单击元素。

Actions action=new Actions(driver);
action.moveToElement(driver.findElement(By.xpath("//a[contains(text(), 'CATEGORIES')]"))).click().build().perform();

请注意:使用以下导入。

import org.openqa.selenium.interactions.Actions;

答案 2 :(得分:1)

仅供参考:

<ul>
  <li><a href="index.php">HOME</a></li>
  <li><a href="catlist.php">CATEGORIES</a></li>
  <li><a href="brands.php">BRANDS</a></li>
  <li><a href="products.php">PRODUCTS</a></li>
  <li><a href="cart.php">MY CART</a></li>
  <li><a href="tracking.php">TRACKING</a></li>
  <li><a href="customerlogin.php">ACCOUNT</a>
  </li>
  <li><a href="faq.php">FAQ'S</a></li>
  <li><a href="aboutus.php">ABOUT US</a></li>
</ul>

使用链接文本的替代方法: => By.linkText(“类别”)

driver.findElement(By.linkText("CATEGORIES")).click();