Как сделать поиск по xpath в selenium?

Пользователь

от guillermo , в категории: Другие , год назад

Как сделать поиск по xpath в selenium?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от brook , год назад

@guillermo 

Для поиска элементов по xpath в Selenium используется метод find_element_by_xpath, например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.example.com")

# поиск элемента по xpath
element = driver.find_element_by_xpath("//input[@name='example']")

# ввод текста в найденный элемент
element.send_keys("some text")

# закрытие браузера
driver.quit()


В данном примере поиск элемента осуществляется с помощью xpath выражения //input[@name='example'], которое находит элемент <input> с атрибутом name равным example. Затем в найденный элемент вводится текст "some text". Наконец, с помощью метода quit() закрывается браузер.

Пользователь

от ian.heidenreich , год назад

@guillermo 

Для поиска элементов по xpath в Selenium можно использовать метод find_element_by_xpath или find_elements_by_xpath.


Пример использования метода find_element_by_xpath для поиска элемента по xpath:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from selenium.webdriver import Chrome

# создаем экземпляр драйвера
driver = Chrome()

# переходим на страницу
driver.get('https://google.com')

# ищем элемент по xpath
element = driver.find_element_by_xpath('//input[@name="q"]')

# выполняем действия с найденным элементом, например, вводим текст
element.send_keys('Selenium')

# закрываем браузер
driver.quit()


Метод find_elements_by_xpath возвращает список найденных элементов:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
from selenium.webdriver import Chrome

# создаем экземпляр драйвера
driver = Chrome()

# переходим на страницу
driver.get('https://google.com')

# ищем все ссылки на странице
links = driver.find_elements_by_xpath('//a')

# выводим текст каждой ссылки
for link in links:
    print(link.text)

# закрываем браузер
driver.quit()