目次
1. セレンとは何ですか?
(1) Selenium は Web アプリケーションをテストするためのツールです。
(2) Selenium テストは、実際のユーザーが操作しているのと同じように、ブラウザーで直接実行されます。
(3) テストを完了するために、さまざまなドライバー (FirfoxDriver、InternetExplorerDriver、OperaDriver、ChromeDriver) を介して実際のブラウザーを駆動するサポート。
(4) Selenium は、インターフェイスなしのブラウザ操作もサポートしています。
2. なぜセレンを使用するのですか?
ブラウザ機能をシミュレートし、Webページ内のjsコードを自動実行し、動的ローディングを実現します。
3.セレンのインストール
(1) Google Chromeドライバーのダウンロードアドレスを操作する
http://chromedriver.storage.googleapis.com/index.html
(2) Google DriveとGoogle Chromeのバージョン対応表
http://blog.csdn.net/huilan_same/article/details/51896672
(3) Google Chromeのバージョンを確認する
Google Chrome の右上隅 -> ヘルプ -> バージョン情報
(4)pip install Selenium
4. セレンの使い方
(1) インポート: Selenium インポート Webdriver から
(2) Google Chrome 操作オブジェクトを作成します。
path = Google Chromeドライバーファイルのパス
ブラウザ = webdriver.Chrome(パス)
(3) アクセスURL
url = アクセス先の URL
ブラウザ.get(url)
# (1)导入selenium
from selenium import webdriver
# (2) 创建浏览器操作对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
# (3)访问网站
# url = 'https://www.baidu.com'
#
# browser.get(url)
url = 'https://www.jd.com/'
browser.get(url)
# page_source获取网页源码
content = browser.page_source
print(content)
5. セレンの元素配置
要素の配置: オートメーションで行う必要があるのは、これらの要素、クリック、入力などを操作するためにマウスとキーボードをシミュレートすることです。これらの要素を操作する前に、まず要素を見つける必要があります。WebDriver には要素を見つけるための多くのメソッドが用意されています
方法:
(1)id による要素の検索
例:button = browser.find_element_by_id('su')
(2)名前による要素の検索
例:name = browser.find_element_by_name('wd')
(3)xpath による要素の検索
例:xpath1 = browser.find_elements_by_xpath('//input[@id="su"]')
(4)タグ名による要素の検索
例:names = browser.find_elements_by_tag_name('input')
(5)css_selector による要素の検索
例:my_input = browser.find_elements_by_css_selector('#kw')[0]
(6)リンクテキストによる要素の検索
例:browser.find_element_by_link_text("ニュース")
注: これらのコードは統合されたため、find_element(by='', value='') を通じてコードを見つけることができます。by の値は属性名で、value は属性値です。
from selenium import webdriver
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
url = 'https://www.baidu.com'
browser.get(url)
# 元素定位
# 根据id来找到对象
button = browser.find_element_by_id('su')
print(button)
# 根据标签属性的属性值来获取对象的
button = browser.find_element_by_name('wd')
print(button)
# 根据xpath语句来获取对象
button = browser.find_elements_by_xpath('//input[@id="su"]')
print(button)
# 根据标签的名字来获取对象
button = browser.find_elements_by_tag_name('input')
print(button)
# 使用的bs4的语法来获取对象
button = browser.find_elements_by_css_selector('#su')
print(button)
button = browser.find_element_by_link_text('直播')
print(button)
6. 要素情報にアクセスする
要素の属性を取得する
.get_attribute('クラス')
要素テキストを取得する
。文章
タグ名を取得する
。タグ名
from selenium import webdriver
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
url = 'http://www.baidu.com'
browser.get(url)
input = browser.find_element_by_id('su')
# 获取标签的属性
print(input.get_attribute('class'))
# 获取标签的名字
print(input.tag_name)
# 获取元素文本
a = browser.find_element_by_link_text('新闻')
print(a.text)
7. インタラクション
- クリック: クリック()
- 入力: send_keys()
- 戻る操作: browser.back()
- 転送操作: browser.forword()
- JS スクロールをシミュレートします。
js='document.documentElement.scrollTop=100000'
browser.execute_script(js) JSコードを実行する
- Web ページのコードを取得: page_source
- 終了:browser.quit()
例: Baidu は周杰倫を自動的に検索し、ページをめくるなどします。
from selenium import webdriver
# 创建浏览器对象
path = 'chromedriver.exe'
browser = webdriver.Chrome(path)
# url
url = 'https://www.baidu.com'
browser.get(url)
import time
time.sleep(2)
# 获取文本框的对象
input = browser.find_element_by_id('kw')
# 在文本框中输入周杰伦
input.send_keys('周杰伦')
time.sleep(2)
# 获取百度一下的按钮
button = browser.find_element_by_id('su')
# 点击按钮
button.click()
time.sleep(2)
# 滑到底部
js_bottom = 'document.documentElement.scrollTop=100000'
browser.execute_script(js_bottom)
time.sleep(2)
# 获取下一页的按钮
next = browser.find_element_by_xpath('//a[@class="n"]')
# 点击下一页
next.click()
time.sleep(2)
# 回到上一页
browser.back()
time.sleep(2)
# 回去
browser.forward()
time.sleep(3)
# 退出
browser.quit()