Попытка нажать на гиперссылку с пробелами - PullRequest
0 голосов
/ 02 мая 2019

Я пытаюсь нажать на гиперссылку с пробелом, используя Java и Selenium. Вот пример кода

<h3 class="side menu">
    <a class="side-menu" href="/configurations">
    <span class="menu-icon ca"></span>Configuration
    </a>
</h3>

Я пытался использовать xpath, начальный и содержащий безуспешно.

driver.findElement(By.xpath("//a[starts-with(text(),’Configuration’)]")).click();

Ответы [ 3 ]

1 голос
/ 03 мая 2019

Для обработки динамического элемента используйте WebDriverWait и elementToBeClickable с ожидаемыми условиями. Используйте следующие стратегии Xpath locator.

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath('//a[@class="side-menu"][normalize-space(.)="Configuration"]')));
element.click()

OR

WebDriverWait wait = new WebDriverWait(driver, 30);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(By.xpath('//a[@class="side-menu"][contains(.,"Configuration")]')));
element.click()
0 голосов
/ 03 мая 2019

Я бы использовал normalize-space при написании xpath для текста, который обрежет первые и предшествующие белые символы (пробелы / табуляции / новые строки)

Вот как вы должны это сделать в своем вопросе.

//a[normalize-space(.)='Configuration']

Протестировал xpath в консоли Chrome на предмет click (), успешно используя javascript.

0 голосов
/ 03 мая 2019

Я думаю, все, что вам нужно, это добавить косую черту:

driver.findElement(By.xpath("//a[starts-with(text(),'/configuration')]")).click();

Это работает для меня в консоли Chrome, если я наберу:

$x("//a[starts-with(@href,'/configuration')]")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...