python

しょっちゅう忘れることを書いておく。

33

1324 views

seleniumでスクレイピングを行う際、たまにボタンをクリックできないときがある。
これは、ボタンが表示されているものの、クリックを受け付けられる状態にないときに起きるらしい。
そんなときは、

expected_conditions.element_to_be_clickable

を使うことで対処できる(かもしれない)

サンプルコードを以下に記す。

import os

from selenium import webdriver
from selenium.webdriver.common.alert import Alert
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.common.by import By


def get_xpath(driver, path):
    # find_element_by_xpathと毎回書くのが面倒なので関数作成
    return driver.find_element_by_xpath(path)

if __name__ == '__main__':
    options = webdriver.ChromeOptions()
    #options.add_argument()
    driver = webdriver.Chrome(os.path.join(os.getcwd(), "chromedriver.exe"), options=options)

    driver.get('https://www.osumoi-stdio.com/')

    wait = WebDriverWait(driver, 10)

    get_xpath(driver, '//*[@id="id_key_word"]').send_keys('暗号資産')

    # ここでボタンがクリックできるようになるまで待つ。
    wait.until(expected_conditions.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[1]/div[1]/div/form/p[2]/button')))
    get_xpath(driver, '/html/body/div[2]/div[1]/div[1]/div/form/p[2]/button').click()

Page 12 of 56.

前のページ 次のページ



[添付ファイル]


お問い合わせ

プロフィール

マッスル

自己紹介

本サイトの作成者。
趣味:プログラム/水耕栽培/仮想通貨/激辛好き
プログラムは趣味と勉強を兼ねて、のんびり本サイトを作っています。
フレームワークはdjango。
仮想通貨はNEMが好き。
水耕栽培は激辛好きが高じて、キャロライナ・リーパーの栽培にチャレンジ中。

サイト/ブログ

https://www.osumoi-stdio.com/pyarticle/

ツイッター

@darkimpact0626