• ベストアンサー

Python codeで何と書けば良いのか?

Pythonで株価検索のWebScrapingをSeleniumWeb Driverを使ってCoding しています。 添付の画面で、自動的に”同意する”が選択出来るようにしたいのですが、うまく行きません。私は driver.find_element(By.NAME,"同意します").Click() 等々いろいろ試したのですが、どれもダメでした。 どう記せばよいのでしょうか、教えていただければ有難いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • gyokusei
  • ベストアンサー率80% (4/5)
回答No.2

from selenium import webdriver from selenium.webdriver.common.by import By # ブラウザーの起動 driver = webdriver.Chrome() # ページのロード driver.get("https://example.com") # チェックボックスのラベルを指定して要素を取得 checkbox = driver.find_element(By.XPATH, '//label[contains(text(), "同意する")]/preceding-sibling::input') # チェックボックスをクリック checkbox.click() 上記のコードでは、find_elementメソッドで、XPathを使用してラベルに基づいてチェックボックスの要素を取得しています。click()メソッドを使用して、要素をクリックしています。 上記のコードを使ってみてください

momochan1128
質問者

お礼

本当にありがとうございます。 お示し頂いたXPATHを使う方法を試しましたが下記のようなエラーが出ました。 selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//label[contains(text(), "同意する")]/preceding-sibling::input"} (Session info: chrome=111.0.5563.65) 最終行の (Session info: chrome=111.0.5563.65)が気にかかります。 Chromeは110と思っていましたが、111にUpdateされており、例によってChromDriverとのVersionの不一致に起因するものかも知れません。ChromeDriverを更新してもう一度トライして見ます。その結果を再度、お知らせします。 取り急ぎお礼を申し上げます。

momochan1128
質問者

補足

ChromeとChromeWebDriverのVersionを合わせましたがダメでした。貴方がいろいろ解決策を示してくれたので、もう少し自身で頑張ってみます。

その他の回答 (1)

  • gyokusei
  • ベストアンサー率80% (4/5)
回答No.1

Selenium Web Driverを使用して、"同意する" チェックボックスを選択するには、次のようにコードを記述することができます。 # 必要なライブラリをインポート from selenium import webdriver from selenium.webdriver.common.by import By # WebDriverを起動し、ページを開く driver = webdriver.Chrome() driver.get("https://example.com") # "同意する" チェックボックスを選択する checkbox = driver.find_element(By.ID, "agree-checkbox") checkbox.click() 上記のコードでは、 driver.find_element(By.ID, "agree-checkbox") で "同意する" チェックボックスを探し、 checkbox.click() でクリックして選択します。実際のサイトのHTMLコードによっては、チェックボックスの選択方法が異なる場合がありますが、通常、 find_element() メソッドを使用して、ID、クラス名、または要素の名前で要素を検索することができます。

momochan1128
質問者

お礼

回答ありがとうございます。 # "同意する" チェックボックスを選択する→この方法は driver.find_element(By.ID,"*******")やdriver.find_element(By.Name,*******)であることは想像つくのですが、この******の部分に具体的に何が入るのかが解らないのです。貴方の書かれている"agree-checkbox"に相当するのは私の添付ファイルで示したelementでは、”同意します"や”Accept"のように思えるのですが、By.IDでもBy.Name"でもエラーになります。"agree-checkbox"に相当するelementを具体的に示して頂けませんか?"

関連するQ&A