2015-06-30 2 views
0

Я использую расширение Firefox firefly для тестирования своих xpaths.Ruby/Selenium не может получать текст

Запуск этого: XPath

driver.find_elements(:xpath, "//path/a[@class='anytext']").map{|el| el.text} 

против этого якоря:

<a class="anytext" href="/any/path/" title="Search for skill">text</a> 

Я получил все элементы на странице, как [string1, string2....]

С этим: XPath

driver.find_elements(:xpath, "//path/a[@class='anytext and']").map{|el| el.text} 

и этот якорь:

<a class="anytext andmore" href="/any/path/" title="Search for skill" aria-describedby="tooltip">text</a> 

я получил массив [" ", " ", ....] без текста.

Я понимаю, что проблема связана с «описанной арией», но я не знаю, что попробовать дальше? Я пытался использовать разные методы, но не получал то, что мне нужно.

ответ

1

Есть несколько классов, поэтому постарайтесь contains и and в вашем XPath вместо:

driver.find_elements(:xpath, "//path/a[contains(@class, 'anytext') and contains(@class, 'and')]").map{|el| el.text} 

Обратно вы можете осуществлять поиск по css selectors:

driver.find_elements(:css, "path a.anytext.and").map{|el| el.text} 
+0

Извините. Наверное, моей информации было недостаточно, чтобы решить эту проблему. – Dmytro

0

Я решил проблему с поджигатель Это скрытые элементы с атрибутом: «innerHTML» или «textContent»

т.е.:

driver.find_elements(:css, "path to elements").map{|el| el.attribute('textContent')} 
Смежные вопросы