XPATH для ссылки href не работает.Получение недействительного селектора: это должен быть элемент - PullRequest
0 голосов
/ 13 марта 2019

Я пытаюсь автоматизировать пару сценариев Selenium из этого веб-сайта

Я пытался нажать на ссылку "категории", указав приведенный ниже XPATH

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

Я получаю InvalidSelector ошибку. Не могли бы вы предложить альтернативный XPATH для этого?

Ответы [ 3 ]

1 голос
/ 13 марта 2019

Используйте класс действий, чтобы щелкнуть по элементу.

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

Обратите внимание: используйте следующий импорт.

import org.openqa.selenium.interactions.Actions;
1 голос
/ 13 марта 2019

Только для справки:

<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>

Альтернативный способ с использованием linktext: => By.linkText ("КАТЕГОРИИ")

driver.findElement(By.linkText("CATEGORIES")).click();
1 голос
/ 13 марта 2019

Раздел «КАТЕГОРИИ» на странице, которую вы пытаетесь автоматизировать, хранится в виде текста в структуре html, поэтому вы можете найти его с помощью приведенного ниже xpath, который найдет его, сопоставив его текст:

WebElement categoriesSection = driver.findElement(By.xpath("//a[text()='CATEGORIES']"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...