我正在尝试对具有类似 AJAX 功能的网站进行很好的编码,并使用 pysaunter ( http://element34.ca/products/saunter/pysaunter )。
当我使用可用的同步方法 wait_for_available 时,可能不正确,我的代码或多或少地做了我想要的,但是 Selenium 服务器节点在类尚不存在时抛出如下断言:
org.openqa.selenium.remote.ErrorHandler$UnknownServerException:无法找到元素:{“method”:“css selector”,“selector”:“.ng-scope.ready.idle”}
我想使用WebDriverWait,我想是这样的:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
WebDriverWait(self.driver, 30).until(EC.presence_of_element_located((By.CLASS_NAME,'idle')))
但是当我尝试这样做时,我仍然从 Firefox 远程 webdriver 中得到上述异常,从 chrome 远程 webdriver 中得到以下异常:
13:09:22.525 WARN - 例外:没有这样的元素(会话信息:chrome=29.0.1547.76)(驱动程序信息:chromedriver=2.0,平台=Mac OS X 10.8.5 x86_64)(警告:服务器没有提供任何堆栈跟踪信息)
在使用 Python 运行远程 webdriver 时,在寻找可能不会立即出现的元素时,是否可以避免 Selenium Server 的异常?
谁能指出我从 pysaunter 使用 WebDriverWait 的正确方法的示例?我从这里开始: http: //docs.seleniumhq.org/docs/04_webdriver_advanced.jsp 和(另请参阅 2012 年 7 月 9 日发布的 Element 34 博客“WebDriverWait 和 Python”)
TIA