#実現したいこと
webサイトのドロップダウンから特定の選択肢を選択する
#実現するための案
そのドロップダウンリストにselectタグがついていたので
from selenium.webdriver.support.select import Select
dropdown = driver.find_element_by_css_selector(
'select.クラス名')
select = Select(dropdown)
select.select_by_value('1')
といった感じでオプションタグを選択する
#困ったこと
selectタグがついているにも関わらず、エラーが発生する
selenium.common.exceptions.NoSuchElementException: Message: no such element:
Unable to locate element: {"method":"css selector","selector":"select.クラス名"}
#対処法
driver.find_element_by_css_selector
で直接選択肢をクリックするようにした。
つまり、
driver.find_elements_by_css_selector('option.選択肢のクラス名')[3].click()
とした。[3]
としているのは同一のクラス名が複数あったから。chromeのコンソールを見ていると上から4番目だったので指定した。
#原因
はっきりしたことはわからない。しかし別のselectタグで、name属性があるものはselectで選択することができた。
dropdown = driver.find_element_by_name(
'select.name属性')
select = Select(dropdown)
select.select_by_value('1')
このことから、css_selector
でクラスを指定するところで何かうまくいっていないのかとは思った