Не могу найти элемент по xpath, чтобы выбрать - PullRequest
0 голосов
/ 30 мая 2018

Привет, у меня возникли серьезные проблемы при попытке найти этот элемент с помощью xpath:

class="accountSettingsTextBase_1u09j40-o_O-accountSettingsItemText_10y8axf" aria-current="false" href="/account/signin">Log In

Я пробовал:

"//*[contains(text(),'Log In')]"

, а также фактический xpath:

//*[@id='root']/div/header/div[3]/nav/ul/li[1]/a

, а также текст ссылки, который все еще не работает, какие-либо идеи ??

Кстати, якорные теги отсутствуют в HTML, так как он просто показывает «Войти» с нимидобавлено в

Полный HTML: Полный HTML

Ответы [ 4 ]

0 голосов
/ 30 мая 2018

Пожалуйста, добавьте явное ожидание, а затем отметьте

WebDriverWait wait=new WebDriverWait(driver,20);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[contains(text(),'Log In')]")));
driver.findElement(By.xpath("//*[contains(text(),'Log In')]")).click();
0 голосов
/ 30 мая 2018

Возможные xpaths:

//a[@href='/account/signin']

ИЛИ

//a[contains(.,'Log In')]

ИЛИ

Попробуйте использовать селектор Css:

a[class^='accountSettingsTextBase_' ][class*='accountSettingsItemText']
0 голосов
/ 30 мая 2018

Почему бы вам не использовать

driver.findElement(By.linkText("Log In"))

или

driver.findElement(By.partialLinkText("Log In"))

, поскольку элемент является тегом anchor?

0 голосов
/ 30 мая 2018
//[contains(text(),'Log In')]

Вы что-то упустили:

//*[contains(text(),'Log In')]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...