同じ要素をもつものが沢山あるのですが、"テニス(屋外)"、"軟式野球"、"ソフトボール"だけを場合分けしてクリックしたいです。
そこで下記のようにプログラムを組んだところ、クリックできずに試行錯誤しております。
下記は一度に同じエレメントを取得し、そのエレメントをひとつづつ取り出しながら、エレメントのテキストと一致したら、エレメントの方をクリックする。といった思想で作成しました。
xpathをフルパスで指定してもクリックできなかったのですが、何かわかりましたらご指摘いただきたく、よろしくお願いします。
全コードを下記に記載します。
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC chromedriver_path = "E:\scスクレイピングプログラム\chromedriver.exe" options = webdriver.ChromeOptions() driver = webdriver.Chrome(chromedriver_path, options=options) def re_kf(): driver.get("https://www.fureai-net.city.kawasaki.jp/user/view/user/homeIndex.html") WebDriverWait(driver, 50).until(EC.element_to_be_clickable((By.ID, 'facility04_on'))).click()# "目的や人数から"をクリック selectors = [] # 選択肢の要素を入れるリストを作成 selectors_str = [] # 選択肢の要素(テキスト)を入れるリストを作成 selectors = driver.find_elements_by_xpath('//*[@id="label"]') #selectors = driver.find_elements_by_xpath('//*[@id="checked"]') #full Pass xpathでのクリック実験 driver.find_element_by_xpath('/html/body/div/form[2]/table/tbody/tr/td[2]/div/table[1]/tbody/tr[2]/td/div/table[2]/tbody/tr[2]/td[1]/div/label/span').click driver.find_element_by_xpath('/html/body/div/form[2]/table/tbody/tr/td[2]/div/table[1]/tbody/tr[2]/td/div/table[2]/tbody/tr[2]/td[1]/div/label/input').click driver.find_element_by_xpath('/html/body/div/form[2]/table/tbody/tr/td[2]/div/table[1]/tbody/tr[2]/td/div/table[2]/tbody/tr[2]/td[1]/div/label').click #実験ここまで for i in selectors: selectors_str.append(i.text) if i.text == "テニス(屋外)" or i.text == "軟式野球" or i.text == "ソフトボール" : i.click re_kf()
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/03 01:06
2020/01/03 01:20
2020/01/03 09:19