gpt4 book ai didi

javascript - python Selenium : wait until class is visible

转载 作者:行者123 更新时间:2023-11-29 21:12:34 25 4
gpt4 key购买 nike

我正在尝试从具有不同网页的网站获取数据。

我的代码是这样的:

item_List = []
def scrape(pageNumber):
driver.get(url + pageExtension + str(pageNumber))
items = driver.find_elements_by_class_name("Item-information")
for item in items:
item_List.append(item.text)
return item_List

现在我可以从一页中收集我想要的数据。当我运行时:

 print scrape(23)

我得到了我需要的结果。但是当我运行时:

print scrape(14) #any page number really
print scrape(23)

Selenium首先加载页面“url + pageExtension + str(14)”,成功获取数据。然后加载“url + pageExtension + str(23)”但不抓取数据。我收到以下错误代码:

selenium.common.exceptions.StaleElementReferenceException: Message:    
stale element reference: element is not attached to the page document

我认为这是由于浏览器没有足够快地加载第二页导致 selenium 无法抓取我正在寻找的类引起的。我尝试了一些等待功能,但到目前为止我还没有成功。非常感谢您的帮助!

提前致谢!

最佳答案

尝试如下:

item_List = []
def scrape(pageNumber):
driver.get(url + pageExtension + str(pageNumber))
items = driver.find_elements_by_class_name("Item-information")
for item in items:
item_List.append(item.text)
element = WebDriverWait(driver, 10).until(
EC.staleness_of((By.CLASS_NAME, "Item-information"))) # waits till the element is NOT attached to the DOM.
return item_List

注意:当您正在寻找相同的元素(具有相同的类名)时,items 仍然包含对您已经访问过的 previous 元素的引用。 (此处为 第 14 页)。因此,当您访问 Page 24 时,items 指的是 Page 14 但不在 Page 24 中的元素>,因此给出 StaleElementReferenceException

关于javascript - python Selenium : wait until class is visible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41058816/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com