Twitter 的 Selenium WebDriverWait 异常

Selenium WebDriverWait exception with Twitter

我正在尝试查找某个帐户发布的任何新推文。我有以下代码:

while True:
    browser.get("https://twitter.com/" + twitter_username)
    try:
       WebDriverWait(browser, 10).until(lambda x: x.find_element(by=By.XPATH, value='//article[@data-testid="tweet"]'))
    except Exception as e:
        print(e)
        return
     
    # More code to get the newest Tweet

前 10-20 分钟一切正常(网页加载正确并且我收到了最新的推文),但随后它开始抛出以下异常:

Message:
Stacktrace:
#0 0x5583bfb217d3 <unknown>
#1 0x5583bf87d688 <unknown>
#2 0x5583bf8b3c21 <unknown>
#3 0x5583bf8b3de1 <unknown>
#4 0x5583bf8e6d74 <unknown>
#5 0x5583bf8d16dd <unknown>
#6 0x5583bf8e4a0c <unknown>
#7 0x5583bf8d15a3 <unknown>
#8 0x5583bf8a6ddc <unknown>
#9 0x5583bf8a7de5 <unknown>
#10 0x5583bfb5249d <unknown>
#11 0x5583bfb6b60c <unknown>
#12 0x5583bfb54205 <unknown>
#13 0x5583bfb6bee5 <unknown>
#14 0x5583bfb48070 <unknown>
#15 0x5583bfb87488 <unknown>
#16 0x5583bfb8760c <unknown>
#17 0x5583bfba0c6d <unknown>
#18 0x7fbd0c6b76db <unknown>

如有任何帮助,我们将不胜感激。谢谢

在每个循环的末尾添加:

browser.refresh() 

看起来你的驱动程序的内存消耗随着每次循环迭代而增加。
你说 10-20 分钟后你的脚本停止正常工作?
假设您的代码在大约 2000 次迭代后仍能正常工作? 在这种情况下,为您的外观添加一个计数器,以便在 500 次迭代后您将处理当前使用的驱动程序对象实例并创建一个新的,如下所示:

counter = 0
while True:
    counter = counter + 1
    if(counter>500):
        browser = webdriver.Chrome(executable_path='chromedriver.exe')
        counter = 0
    browser.get("https://twitter.com/" + twitter_username)
    try:
       WebDriverWait(browser, 10).until(lambda x: x.find_element(by=By.XPATH, value='//article[@data-testid="tweet"]'))
    except Exception as e:
        print(e)
        return