py-py’s blog

何か書くよ

Selenium Compound class names not permitted

python - Selenium Compound class names not permitted - Stack Overflow

find_element_by_css_selector(."class_name")
find_element_by_xpath("//*[@class='class_name']")

どちらかで取得する

複数の場合はもちろん、find_elements_by_にすること
エラーが出てほしくないときは以下のようにしていた

elements = find_elements_by_xpath("xpath")
if len(elements) != 0:
    ~~やりたい処理~~
    # 要素が0じゃないとき、find_elementでも取得できるので
    element = find_element_by_xpath("xpath")

Webページの全ての子要素を取得するには

find_elements_by_css_selector("*")  
find_elements_by_xpath(".//*")

でWebページのすべての(子)要素を取得可能

seleniumだと親->子という構造の、子の要素を取得しにくい
(xpathで直接指定するなどは可能)

  • find_elements_by_class_name
  • find_elemetns_by_tab_name
    などではどうしても怒られる。

その際は

  1. 親となる要素をまずfind_element_XXXで取得
  2. 取得した要素からfind_element_by_XXXを行う

ことにより、取得できる