Python + selenium_要素の配置

Selenium 2.0は、ブラウザーのネイティブAPIを使用していくつかの基礎となる操作関数をカプセル化し、python、java、およびphpをサポートするwebdriveを追加します。Seleniumの
原則:3ステップの
コード要求がブラウザードライバーに送信され、
ドライバーはタクシードライバーのようなものです。私たちのニーズと
目的地に私たちを送るためにブラウザを開いた

ウェブドライバーの役割:
セレンの3つのコアの1つであり、ブラウザー操作の機能をカプセル化するため、ブラウザーの制御を直接呼び出して実現できます。

1. Pythonの基本的な知識は言うまでもなく、「入門から練習までのPythonプログラミング」のコピーを購入して自分で習得してください。
関係するコンテンツ:ビルド環境、変数、データ型、リスト、操作リスト、ifステートメント、辞書、ユーザー入力とwhileループ、関数、クラス、ファイルと例外処理、テストコード

2.要素の配置は
HTMLページ要素の属性に従ってSeleniumに配置されます。Webでの操作手順は次のとおりです。
(1)ページ要素を配置し、要素を取得します
(2)要素に対して操作を実行します:クリック、ダブルクリック、ドラッグ、値の入力など。

Seleniumは、id、name、xpath、class name、tag name、link_text、partial link text、cssselectorの8つの配置方法を提供します。

IDポジショニング
HTMLタグのID値は一意であるため、複数の要素をポジショニングするIDはありません。IDを使用できる場合は、他の要素は必要ないため、メンテナンスコストが増加します。たとえば
、実行後にBaiduホームページでpythonと入力します。

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("python")

cssポジショニング
cssは、主にIDとクラスによってポジショニングされます。12以上のポジショニングセレクターがあります。利点:高速、シンプルな構文、および
idを使用した非常にシンプルなcssポジショニング:

driver.find_element_by_css_selector("#kw").send_keys("python")

cssはクラスポジショニングを使用します。

driver.find_element_by_css_selector(".s_ipt").send_keys("python")

その他の属性の配置:

driver.find_element_by_css_selector('[name="wd"]')

複合ポジショニング:

driver.find_element_by_css_selector('[angwox="wd"][autocomplete="off"]')

ファジーポジショニング:

# 定位style值以tfjiao开头的元素
driver.find_element_by_css_selector('[style^="tfjiao"]').click()
# 定位style值以tengfei.gif结尾的元素
driver.find_element_by_css_selector('div[style$="tengfei.gif"]').click()
# 定位style值包含tengfei的元素
driver.find_element_by_css_selector('div[style*="tengfei"]').click()

右クリックしてコピー:
要素を選択し、右クリックして絶対パスをコピーします。何も言うことはないようです。
コピーして貼り付けます:#form> input [type = hidden]:nth-​​child(3)

link_textの
値は次のとおりです。ハイパーリンクのすべての名前の
ニュース

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_link_text("新闻").click()

xpthポジショニング
xpthは、xml path languageの略語であり、xmlドキュメントの特定の部分の場所を決定するために使用される言語です。xpathはcssよりも柔軟性があり、cssよりも遅い
(1)インターフェイステキストの検索、これはたくさんあります

driver.find_element_by_xpath('//*[text()="kw"]').click()

(2)属性値の配置

driver.find_element_by_xpath('//*[@xygsng="kw"]').send_keys("python")

(3)複合ポジショニングを理解する:cssの組み合わせを使用する

driver.find_element_by_xpath('//*[@xygsng="kw" and @xydafn="mg"]').send_keys("python")

(4)完全なxpth [絶対パス]を右クリックしてコピーします。これを再度使用する方法は実際にはありません。とにかく、右クリックのコピーは信頼できない場合があります。

driver.find_element_by_xpath('/html/body/div[1]/div[2]/div[5]/div[1]/div/form/span[1]/input').send_keys("python")

partial_link_textは
ファジークエリに似ています。これは言うまでもありませんが、一部のハイパーリンクテキストが長すぎるため、このニュースを使用する方が快適です。

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_link_text("新").click()

名前の位置付け

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
driver.find_element_by_name("wd").send_keys("python")

クラスの位置付け
例として、Baiduホームページの検索ボックス:

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
**driver.find_element_by_class_name("s_ipt").send_keys("python")**

Tag_nameの位置付け:
基本的には使用されません。それを見て、タグの名前で見つけてください。

#coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.baidu.com/")
print(driver.find_element_by_tag_name('form').get_attribute('name'))

8つの主要なポジショニングの個人的な理解:1。CSS
ポジショニングID、名前
2.Xpathポジショニングテキスト値3.CSS
組み合わせポジショニング
4.Xpath絶対パス[メンテナンスを使用しないでください。問題が発生しやすく、煩わしい]

おすすめ

転載: blog.csdn.net/weixin_45451320/article/details/112489722