我对 Python 和 Selenium 还很陌生。我正在尝试在 VS Code 中使用 Python 和 Selenium 从网页中收集元素。我已经在其他网页上做过类似的事情,所以我可以确认设置和驱动程序都可以正常工作。这是我将尝试逐行解释的代码。
'// 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)
问题是,虽然我可以在第二行和第三行代码中使用像“find_element”这样的函数……但我不能在 for 循环中使用它,在第五行代码中。在数字化“。”之后,VS Code 甚至没有向我显示预期的功能。我试图自己完成它,希望它能奏效,但当然没有。
为什么会这样?
为什么有时我不能使用 WebElements 功能?
我注意到它主要发生在对象列表而不是单个对象上。