Как использовать Selenium с Python?
Как мне настроить Selenium для работы с Python? Я просто хочу написать / экспортировать скрипты на Python, а затем запустить их. Есть ли ресурсы, которые научат меня, как это сделать? Я попробовал поискать в Google, но обнаруженные материалы касались либо устаревшей версии Selenium (RC), либо устаревшей версии Python.
3 ответа
Вы имеете в виду Selenium WebDriver? Ха....
Условие: установить Python на основе вашей ОС
Установите с помощью следующей команды
pip install -U selenium
И используйте этот модуль в своем коде
from selenium import webdriver
Вы также можете использовать многие из следующих при необходимости
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
Вот обновленный ответ
Я бы порекомендовал вам запустить скрипт без IDE... Вот мой подход
- Используйте IDE для поиска xpath объекта / элемента
- И используйте find_element_by_xpath(). Click()
Пример ниже показывает автоматизацию страницы входа
#ScriptName : Login.py
#---------------------
from selenium import webdriver
#Following are optional required
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
baseurl = "http://www.mywebsite.com/login.php"
username = "admin"
password = "admin"
xpaths = { 'usernameTxtBox' : "//input[@name='username']",
'passwordTxtBox' : "//input[@name='password']",
'submitButton' : "//input[@name='login']"
}
mydriver = webdriver.Firefox()
mydriver.get(baseurl)
mydriver.maximize_window()
#Clear Username TextBox if already allowed "Remember Me"
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).clear()
#Write Username in Username TextBox
mydriver.find_element_by_xpath(xpaths['usernameTxtBox']).send_keys(username)
#Clear Password TextBox if already allowed "Remember Me"
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).clear()
#Write Password in password TextBox
mydriver.find_element_by_xpath(xpaths['passwordTxtBox']).send_keys(password)
#Click Login button
mydriver.find_element_by_xpath(xpaths['submitButton']).click()
Есть еще один способ найти xpath любого объекта -
- Установите Firebug и Firepath дополнения в Firefox
- Открыть URL в Firefox
- Нажмите F12, чтобы открыть экземпляр разработчика Firepath
- Выберите Firepath в нижней части браузера и выберите "xpath"
- Переместить курсор мыши на элемент на веб-странице
- в текстовом поле xpath вы получите xpath объекта / элемента.
- Скопируйте Вставьте xpath в скрипт.
Запустить скрипт -
python Login.py
Вы также можете использовать селектор CSS вместо xpath. Селекторы CSS в большинстве случаев немного быстрее, чем xpath, и обычно предпочтительнее, чем xpath (если в элементах, с которыми вы взаимодействуете, нет атрибута ID).
Firepath также может захватывать локатор объекта как CSS-селектор, если вы подведете курсор к объекту. Вам придется обновить ваш код, чтобы использовать вместо него эквивалентный метод поиска с помощью селектора CSS -
find_element_by_css_selector(css_selector)
Существует множество источников селена - вот хороший пример для простого использования Selenium, а также приведенный ниже фрагмент кода Примеры Selenium
Вы можете найти много хороших источников, чтобы использовать селен, его не так сложно настроить и начать использовать.
Вам просто нужно импортировать пакет селена, который вы можете сделать из командной строки с помощью команды
pip install selenium
Когда вам нужно использовать его в любой среде IDE, просто импортируйте этот пакет, никакой другой документации не требуется для импорта
Например:
import selenium
print(selenium.__filepath__)
Это просто общая команда, которую вы можете использовать для начала проверки пути к файлу селена.
У меня есть другое решение. Вы можете использовать несколько полезных IDE, таких как Pycharm, и когда вы используете эту IDE, вам не нужны некоторые сложные способы, такие как pip-install. Итак, этот код будет поддерживаться простым способом:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException