for i in driver.find_elements_by_class_name("endorse-count"):
try:
i.click()
except:
continue
elem = WebDriverWait(driver, 100).until(EC.presence_of_element_located((By.CLASS_NAME, "dialog-window")))
src = elem.get_attribute("innerHTML")
add_skill(name, src)
WebDriverWait(driver, timeout=10)
我在运行上述代码时遇到以下错误-
^{pr2}$对于线路-
src = elem.get_attribute("innerHTML")
我正在LinkedIn用户配置文件页面上运行此代码,登录后。在
我尝试在“I.click()”之后添加以下代码行-
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
但是我看到函数“add_skill(name,src)”没有被调用,后面的代码也没有司机.管理调用了(),但for loop和further i.click()可以正常工作。在
我在尝试执行一些javascript(IJavaScripExecutor)时遇到了类似的问题。我创建了一个IWebElement并将其传递给JSE,但这对我来说失败了。当我移动驱动程序.FindElement(选举人)进入我的JSE电话,然后就成功了。(C#提前编码。)
而不是:
我不得不这样做:
^{pr2}$您可能需要做一些类似的事情:将选择器或元素创建移动到与您尝试的操作相同的行上。或者,对你来说:
仔细观察,这就是您的问题所在,当您尝试使用get_attribute方法时,会出现一个过时的web元素对象。在
我也遇到过类似的问题,在找到元素之前尝试刷新页面,结果成功了。。。在
虽然我无法解释这是怎么回事。在
如果这对你也有用,请告诉我。我只想进一步了解这个例外情况。在
you can refer this page to learn about a similar issue
Selenium正在尝试在验证目标元素是否已在页面上呈现之前完成操作(例如单击按钮或链接)。Selenium可以更有耐心,但你必须明确要求他这样做。在
例如,如果您正在测试一个发出AJAX请求的东西,您可以尝试如下方法(在Ruby中):
为了确保您的测试是完全全面的,总是让Selenium在运行任务之前等待元素加载。在
相关问题 更多 >
编程相关推荐