私はPythonとSeleniumにかなり慣れていません。VS Code で Python と Selenium を使用して Web ページから要素を収集しようとしています。他の Web ページで既に同様のことを行っているので、セットアップとドライバーがすべて正常に動作することを確認できます。これは、行ごとに説明しようとするコードです。
'// Creating an empty Array of Names'
Names = []
'// Finding and Saving the Table im interested in'
Table = driver.find_element_by_id("pokedex")
'// Finding and Saving in a list all the elements with a particular class name'
NameCells = Table.find_elements_by_class_name("cell-name")
'// Looping through the List'
for NameCell in NameCells:
'// If it finds a child element with a particular class...'
if NameCell.find_elements(By.CLASS_NAME, "text-muted"):
'// ... append it in the array once transformed into text'
Names.append(NameCell.find_element(By.CLASS_NAME, "text-muted").text)
'// ... else...'
else:
'// ... append an element with another class into the array once transformed into text.'
Names.append(NameCell.find_element(By.CLASS_NAME, "ent-name").text)
'// .. and print the array.'
print(Names)
問題は、コードの 2 行目と 3 行目で "find_element" のような関数を使用できますが、コードの 5 行目の for ループでは使用できないことです。VS Code は、「.」を数字化した後、期待される機能を表示しません。うまくいくことを願って自分で完成させようとしましたが、もちろんうまくいきませんでした。
なぜそれが起こるのですか?
WebElements 関数を使用できないことがあるのはなぜですか?
単一のオブジェクトではなく、主にオブジェクトのリストで発生していることに気付きました。