2015-11-24 22 views
1

Я пытаюсь найти (и щелкнуть) конкретные страницы для моей программы Python, используя селен.Python - Selenium Найти элементы по href

Я попытался

driver.findElement(By.cssSelector("a[href*='text']")).click(); 

И

driver.findElement(By.partialLinkText("text")).click(); 

text С, что я ищу. Они не работают с ошибкой

AttributeError: 'WebDriver' object has no attribute 'findElement' 

Я могу только предположить, что он не может найти этот элемент, потому что это для Java, не Python.

Единственным отличительным фактором для ссылок на веб-сайте являются атрибуты href.

Все остальные теги имеют повторы. Я не могу на 100% угадать правильную ссылку, поэтому мне нужно, чтобы локатор был частичным текстом.

Есть ли все, чтобы начать это? Могу ли я использовать другие программы? Кто-нибудь успешно это сделал? Я пытался поискать, но никто даже не спросил об этом.

ответ

3

Вы можете попробовать:

from selenium.webdriver.common.by import By 
... 
driver.find_element(By.PARTIAL_LINK_TEXT, 'text').click() 

или

from selenium import webdriver 
... 
driver.find_element_by_partial_link_text("text").click() 

EDIT: Для частичного поиска текста на HREF сам попробовать:

from selenium import webdriver 
... 
driver.find_element_by_xpath("//a[contains(@href,'text')]").click() 

Источники:

http://selenium-python.readthedocs.org/faq.html?highlight=click#how-to-auto-save-files-using-custom-firefox-profile

http://selenium-python.readthedocs.org/locating-elements.html#locating-elements

+0

Оба эти не работают, то первый один изменил WebDriver, который изменил все, и оба не искать внутри самого HREF, только текст, который содержит HREF. –

+0

См. Мое редактирование с помощью xpath. –

+0

Это действительно работает! Это ты так много. Я пробовал это почти целый день. Для любого читающего - используйте его редактирование! –

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