【发布时间】:2019-08-09 06:01:42
【问题描述】:
我有这个代码:
driver.switch_to.window(window_after)
try:
myElem = WebDriverWait(driver, delay).until(EC.presence_of_element_located((By.NAME, '_eventId_confirmed')))
print ("Page 2 is ready!")
except TimeoutException:
print ("Loading took too much time!")
btn = driver.find_element_by_name('_eventId_confirmed')
btn.click()
如您所见,我首先切换窗口,然后检查一个元素,获取该元素(一个按钮),最后尝试单击所述按钮。这可能工作 3 次中的 2 次,但它经常失败并显示此错误消息
selenium.common.exceptions.ElementNotInteractableException: Message: Element <button class="btn" name="_eventId_confirmed"> could not be scrolled into view
在执行流程时,在视觉上查看流程似乎一切正常(我的第一个猜测是窗口开关没有按预期工作)并且浏览器最终处于预期状态,我可以手动单击此按钮.有趣的是,发生此错误时没有超时或类似情况,它在执行过程中立即发生。
有什么想法吗?
【问题讨论】:
-
你试过javascript
scrollIntoView选项吗?点击前driver.execute_script("arguments[0].scrollIntoView;",btn)。 -
抱歉错过了
()。这是正确的代码。driver.execute_script("arguments[0].scrollIntoView();",btn) -
已经添加了答案,如果有帮助请告诉我
标签: python selenium selenium-webdriver webdriver webdriverwait