Подтвердить что ты не робот

Как использовать Selenium с Python?

Как настроить Selenium для работы с Python? Я просто хочу писать/экспортировать скрипты в Python, а затем запускать их. Есть ли какие-то ресурсы, которые научат меня, как это сделать? Я попробовал поиск по Google, но я обнаружил, что он ссылался на устаревшую версию Selenium (RC) или устаревшую версию Python.

4b9b3361

Ответ 1

Вы имеете в виду 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... Вот мой подход

  1. ИСПОЛЬЗОВАТЬ IDE, чтобы найти xpath объекта/элемента
  2. И используйте 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 любого объекта -

  1. Установите Firebug и Firepath в Firefox
  2. Открыть URL в Firefox
  3. Нажмите F12, чтобы открыть экземпляр разработчика Firepath
  4. Выберите Firepath в нижней части панели браузера и выберите "xpath",
  5. Перемещение курсора мыши на элемент на веб-странице
  6. в текстовом поле xpath вы получите xpath объекта/элемента.
  7. Скопировать Вставить xpath в скрипт.

Запустить скрипт -

python Login.py

Вы также можете использовать селектор CSS вместо xpath. Селекторы CSS в большинстве случаев немного быстрее, чем xpath, и обычно предпочитаются по сравнению с xpath (если атрибут ID не используется для элементов, с которыми вы взаимодействуете).

Firepath может также захватить локатор объекта как селектор CSS, если вы переместите курсор на объект. Вам нужно будет обновить свой код, чтобы вместо этого использовать эквивалентную находку с помощью метода выбора CSS -

find_element_by_css_selector(css_selector) 

Ответ 2

Существует много источников для селена - здесь хорошо для простого использования Selenium, и вот примерный фрагмент Примеры селена

Вы можете найти много хороших источников для использования селена, это не слишком сложно, чтобы настроить его и начать использовать его.

Ответ 3

У меня есть другое решение. Вы можете использовать некоторые полезные 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