Pytanie Jak korzystać z Selenium w Pythonie?


Jak skonfigurować selen do pracy z Pythonem? Chcę tylko pisać / eksportować skrypty w Pythonie, a następnie je uruchamiać. Czy są jakieś zasoby, które nauczą mnie, jak to zrobić? Próbowałem googling, ale rzeczy, które znalazłem odnosiły się albo do przestarzałej wersji Selenium (RC), albo do nieaktualnej wersji Pythona.


45
2017-07-09 05:56


pochodzenie




Odpowiedzi:


Masz na myśli Selenium WebDriver? Huh ....

Warunek wstępny: Zainstaluj Python w oparciu o twój system operacyjny

Zainstaluj za pomocą następującego polecenia

pip install -U selenium

I użyj tego modułu w swoim kodzie

from selenium import webdriver

W razie potrzeby możesz również użyć wielu następujących elementów

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException

Oto zaktualizowana odpowiedź

Poleciłbym uruchomić skrypt bez IDE ... Oto moje podejście

  1. UŻYJ IDE, aby znaleźć xpath obiektu / elementu
  2. I użyj find_element_by_xpath (). Click ()

Przykład poniżej pokazuje automatyzację strony logowania

#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()

Istnieje inny sposób, w jaki można znaleźć xpath dowolnego obiektu -

  1. Zainstaluj dodatki Firebug i Firepath w firefox
  2. Otwórz adres URL w przeglądarce Firefox
  3. Naciśnij klawisz F12, aby otworzyć instancję autora Firepath
  4. Wybierz Firepath w okienku przeglądarki i wybierz opcję "xpath"
  5. Przesuń kursor myszy na element na stronie
  6. w polu tekstowym xpath dostaniesz xpath obiektu / elementu.
  7. Skopiuj Wklej xpath do skryptu.

Uruchom skrypt -

python Login.py

Możesz także użyć selektora CSS zamiast xpath. Selektory CSS są w większości przypadków nieco szybsze niż xpath i są zwykle preferowane przez xpath (jeśli nie ma atrybutu ID na elementach, z którymi wchodzisz w interakcję).

Firepath może również przechwytywać lokalizator obiektu jako selektor CSS, jeśli przesuniesz kursor do obiektu. Będziesz musiał zaktualizować swój kod, aby zamiast tego użyć równoważnej metody wyszukiwania według CSS -

find_element_by_css_selector(css_selector) 

67
2017-07-09 06:20



Dzięki, dostałem pip do pracy i zainstalowałem w ten sposób selen. Wyeksportowałem przypadek testowy z IDE jako plik .py, a kiedy spróbuję go ponownie otworzyć, otrzymuję Error loading test case: no command found błąd. - Carpetfizz
>>>> Co masz na myśli przez ponowne otwarcie pliku? >>>> Masz na myśli wykonanie skryptu Pythona, który jest rejestrowany przez IDE? >>> Co próbujesz osiągnąć? - Abhishek Kulkarni
Zasadniczo to: 1.) Record simple script in IDE, export to Python, 2.) Edit the script with Python code  3.) Run the script through the IDE Czy istnieje inny sposób uruchomienia skryptu Python? - Carpetfizz
Mam zaktualizowany mój kod powyżej i jest twój pełny kod .... - Abhishek Kulkarni
@ AbhishekKulkarni- Mam jedno pytanie - czy powinienem używać IDE, takiego jak IDLE, tak jak mamy Indigo? Lub w inny sposób? - demouser123


Istnieje wiele źródeł selenu - tutaj jest dobry do prostego użycia Selen, a tutaj jest również przykładowy fragment Przykłady selenu

Możesz znaleźć wiele dobrych źródeł selenu, nie jest to zbyt trudne, aby go skonfigurować i zacząć go używać.


7
2017-07-09 06:17





Mam inne rozwiązanie. Możesz użyć niektórych przydatnych IDE, takich jak Pycharm, a kiedy korzystasz z tego IDE, nie potrzebujesz żadnych skomplikowanych sposobów, takich jak instalacja pip-install. Tak więc kod ten będzie obsługiwany w prosty sposób:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException

-1
2018-03-08 10:46