2014-12-18 3 views
0

Я пытаюсь заставить Selenium Webdriver щелкнуть ссылку, которая имеет переменную xpath, которая часто меняется, поэтому я не могу рассчитывать на ее поиск по относительной или абсолютной xpath. Исходный код страницы элемента я имею дело с внешностью, как ...Selenium Нажмите ссылку с жирным текстом

<a href="https://webpage.com"/> 
    <img align="left" border="0" src="/img/folder.png"/> 
    <strong>Foobar Folder</strong> 
</a> 

И я в основном пытаюсь нажать на ссылку «Foobar Folder», основанный на тексте самой ссылки, «Foobar Folder ». Любые предложения, как это сделать? Я кодирую его на Java.

ответ

1

Попробуйте этот код, то:

driver.findElement(By.xpath("//*[.='Foobar Folder']")).click(); 

Это будет нажать на элемент, имеющий точную innerHTML/текст в качестве 'Foobar папки'.

+0

По какой причине вы рекомендуете это решение только с помощью findElement (by.linkText («Foobar Folder»)). Click()? – user2150250

+0

Даже метод 'linkText()' будет работать для вашего дела. Вышесказанное является лишь альтернативой этому. – Subh

+0

Спасибо. Да, это хорошо, потому что элемент, который вы ищете, не обязательно является связью все время. – user2150250

1

Что-то вроде:

String path = "//a/strong[contains(text(), 'Foobar Folder')]"; 
webDriver.findElement(By.xpath(path)).click(); 
1

ниже XPath будет найти тег и нажмите на него.

webDriver.findElement(By.xpath("//strong[.='Foobar Folder']/..")).click(); 
0

Текст внутри якоря. Таким образом, очевидный выбор должен быть: webDriver.findElement(By.partialLinkText("Foobar Folder")).click();.

Смежные вопросы