web-dev-qa-db-ja.com

PythonでSeleniumを使用する方法は?

Pythonで動作するようにSeleniumを設定するにはどうすればよいですか? Pythonでスクリプトを記述/エクスポートし、実行するだけです。これを行う方法を教えてくれるリソースはありますか?グーグルで試しましたが、見つかったものは古いバージョンのSelenium(RC)または古いバージョンのPythonのいずれかを指していました。

48
Carpetfizz

あなたはSelenium WebDriverを意味しますか?えっと…。

前提条件:OSに基づいて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. FirefoxにFirebugおよびFirepathアドオンをインストールする
  2. FirefoxでURLを開く
  3. F12キーを押してFirepath開発者インスタンスを開きます
  4. ブラウザペインの下でFirepathを選択し、「xpath」による選択を選択します
  5. マウスのカーソルをウェブページの要素に移動します
  6. xpathテキストボックスでは、オブジェクト/要素のxpathを取得します。
  7. コピーxpasteをスクリプトにコピーします。

スクリプトを実行-

python Login.py

Xpathの代わりにCSSセレクターを使用することもできます。 CSSセレクターは、ほとんどの場合、xpathよりわずかに高速であり、通常はxpathよりも優先されます(対話している要素にID属性がない場合)。

Firepathは、オブジェクトにカーソルを移動すると、オブジェクトのロケーターをCSSセレクターとしてキャプチャすることもできます。代わりにCSSセレクターメソッドによる同等の検索を使用するようにコードを更新する必要があります-

find_element_by_css_selector(css_selector) 
72

Seleniumには多くのソースがあります-これは単純な使用に適したものです Selenium 、そしてここにスニペットの例もあります Selenium Examples

Seleniumを使用するための優れたソースを数多く見つけることができます。セットアップして使用を開始するのはそれほど難しくありません。

7
Serial