web-dev-qa-db-ja.com

python Webページ上のボタンをクリックする

現在、Webサイトにログインするスクリプトがあります。現在クリックされていない場合は、Webサイト上のボタンをクリックするようにしたいのですが。ボタンの情報は次のとおりです。

ボタンがすでにアクティブになっている場合:

<p class="toast_btn">
    <a class="button grey toast track-click active" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

ボタンがアクティブでない場合:

<p class="toast_btn">
    <a class="button grey toast track-click" data-user-avatar="https://dwebsite.net/picture.jpg" data-checkin-id="123456789" data-href=":feed/toast" data-track="activity_feed" href="#">

クリックするのはclass="button grey toast track-click"

これを行う最良の方法は何ですか?現在、urllib2とmechanizeを使用してログインし、現在いくつかのフォームを確認しています。ありがとう!

11
rjbogz

2つのタグを比較すると、違いはclassタグに対するものであることがわかります。だから、もしあなたがそれを読むことができれば、あなたは終わった

必要に応じて、Seleniumでそれを行うことができます

ステップ1:XPathを見つける-ボタンのXPathを取得する:そのためにChromeでページを開き、要素を検査するを選択します-HTMLファイルを開いて右クリックします強調表示された行と[Xpathのコピー]を選択-NotePadでXPathをコピー

XPathを取得したので、Pythonスクリプトを介してボタンを選択し、属性を照会できます

これがプロトタイプです

from Selenium import webdriver
from Selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox()
driver.get("http://www.youradress.org")#put here the adress of your page
elem = driver.find_elements_by_xpath("//*[@type='submit']")#put here the content you have put in Notepad, ie the XPath
print(elem.get_attribute("class"))
driver.close()

ご質問がありましたらお知らせください

これらのリンクをドキュメントに使用しました

Python Selenium:xpathを使用してオブジェクト属性を検索

https://Selenium-python.readthedocs.io/locating-elements.html

12
Gabriel