使用Selenium的find_element(By.XPATH, "//tag[@class='classname']"
,当我尝试迭代某些类的元素时,Pycharm有时会发出以下警告:">应为"collections.Iterable",而得到了"WebElement">"。我不明白为什么它会迭代一些类而没有问题,而另一些则没有问题。这可能与不同的标签有关吗?
在下面的代码中,issues_available
以绿色突出显示,并显示上述警告。
代码:
issues_available = driver.find_element(By.XPATH, "//div[@class='issue ember-view']")
currently_clicked_issue = driver.find_element(By.XPATH, "div[@class='issue active-override ember-view']")
issues_list = []
for issue in issues_available:
issue_vol_number = issue.find_element(By.XPATH, ".//span[@class='label']").text
///
当您编写此时
issues_available = driver.find_element(By.XPATH, "//div[@class='issue ember-view']")
现在issues_available
是一个单独的web元素。
并且迭代单个web元素是没有意义的。
相反,您应该使用:
find_elements
其将返回web元素的列表。
因此,您的有效代码将是:
issues_available = driver.find_elements(By.XPATH, "//div[@class='issue ember-view']")
currently_clicked_issue = driver.find_element(By.XPATH, "div[@class='issue active-override ember-view']")
issues_list = []
for issue in issues_available:
issue_vol_number = issue.find_element(By.XPATH, ".//span[@class='label']").text