Python Selenium等待所有元素的可见性超时

Python Selenium等待所有元素的可见性超时,python,selenium,web-scraping,webdriverwait,Python,Selenium,Web Scraping,Webdriverwait,我正在测试如何在搜索结果页面中获取所有结果,以了解如何使用Selenium。当登录到该站点时,我可以在普通浏览器中看到该特定页面的完整源代码,包括完成该页面的行的div 当然,对于较长的结果集,普通浏览器不会显示,因为Javascript加载比较慢,所以我想找到一种方法让Selenium等待所有结果加载 我基于以下的等待代码: 以下是此特定页面的超时错误: try: element = WebDriverWait(driver,100).until(EC.visibility_of_al

我正在测试如何在搜索结果页面中获取所有结果,以了解如何使用Selenium。当登录到该站点时,我可以在普通浏览器中看到该特定页面的完整源代码,包括完成该页面的行的div

当然,对于较长的结果集,普通浏览器不会显示,因为Javascript加载比较慢,所以我想找到一种方法让Selenium等待所有结果加载

我基于以下的等待代码:

以下是此特定页面的超时错误:

try:
    element = WebDriverWait(driver,100).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "_3t0c")))

finally:
    print('done with webdriver wait anyway')
引发的错误是:

in <module>
    element = WebDriverWait(driver, 100).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "_3t0c")))
  File "..longFilePath....\lib\site-packages\selenium\webdriver\support\wait.py", line 80, in until
    raise TimeoutException(message, screen, stacktrace)
selenium.common.exceptions.TimeoutException: Message:
注意:如果我注释掉这个try循环,我仍然可以得到这个页面上的所有结果

否则,我试着让Selenium等待results div类的结束,也是timeout=100时的timeout error,我可以在Selenium中看到页面加载可能不到20秒

但我只是尝试使用不同的class=“_32mo”,它似乎在列表中每个名字都有一个,这显然没有超时


我对Selenium很陌生,对网页抓取也很陌生,我只是好奇,有人能解释一下可能发生了什么吗?

对于显示的错误,该方法需要一个元组,因此需要更多的括号。试一试

WebDriverWait(driver,30).until(EC.visibility_of_all_elements_located((By.CLASS_NAME, "_3t0c")))

TypeError:接受2个位置参数,但给出了3个

将定位器的类型和值赋给变量 例如: a=(By.CLASS_NAME,“_3t0c”)

然后将这个变量传递到括号中 例如:

a = (By.CLASS_NAME, "_3t0c")
wait = WebDriverWait(driver,30)
element = wait.until(EC.visibility_of_all_elements_located(a))

Facebook不允许你刮它们。使用API。如果不能在API中执行,请不要执行。
a = (By.CLASS_NAME, "_3t0c")
wait = WebDriverWait(driver,30)
element = wait.until(EC.visibility_of_all_elements_located(a))