【Selenium】find_elementで取得した要素をlen()で取得できなかったときの話

以下のように要素を取得したあとその内容と、数を取得する処理を書いた

    test = wd.find_element_by_xpath("//*[@id='test']").find_element_by_class_name("test2")
    print('test:')
    print(test)

    print('len(test):')
    print(len(test))

結果:

test:
<selenium.webdriver.firefox.webelement.FirefoxWebElement (session="b098e400-0626-40f5-81df-97e05277e0e9", element="{8ec3ac70-c71c-4459-8db6-29116e2bb666}")>
len(test):
Traceback (most recent call last):
  File "anemone.py", line 224, in <module>
    scrayping(wd, args.target_month)
  File "anemone.py", line 76, in scrayping
    print(len(test))
TypeError: object of type 'FirefoxWebElement' has no len()

FirfoxWebElementのオブジェクトではlen()が使えないよって出ますね

ググった結果以下が原因でした

find_element_by_class_name

以下のように修正するとうまくいった

find_element_by_class_name
→
find_elements_by_class_name

単数形と複数形で違うんですね

ちゃんとドキュメント読めって話なんですよね

シェアする

  • このエントリーをはてなブックマークに追加

フォローする