【发布时间】:2018-06-18 18:42:51
【问题描述】:
robotframework selenium 上的错误:-
场景: 通过 Robotframework 自动化脚本更新网页上的元素时,页面会刷新,元素也会更新。
- 对于 chrome 浏览器 - 代码工作正常
- 对于 IE(11) 浏览器,当上述场景发生页面刷新时。发生以下异常,自动化脚本执行失败。
错误信息
WebDriverException: Message: Page reload detected during async script
* 日志
11:17:09.064 TRACE 参数:[ "xpath=.//[@name='adapter_name']//选项[contains(.,'ADPT-1AX')]"]
11:17:09.064 信息点击元素 'xpath=.//[@name='adapter_name']//option[contains(.,'ADPT-1AX')]'。
11:17:09.064 调试发布 http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/elements {“使用”:“xpath”,“sessionId”: “47657269-6060-405d-929d-aewfyuefuiux”,“价值”: ".//*[@name='adapter_name']//选项[包含(.,'ADPT-1AX')]"}
11:17:09.164 调试完成请求 11:17:09.165 调试发布 http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/execute {“sessionId”:“47657269-6060-405d-929d-aewfyuefuiux”,“args”: [{“元素-6066-11e4-a52e-4f735466cecf”: “8ffad05f-25db-4b70-821b-f395fd70359e”,“元素”: “8ffad05f-25db-4b70-821b-f395fd70359e”}],“脚本”: “arguments[0].scrollIntoView()”} 11:17:09.248 调试完成 请求 11:17:09.249 调试发布 http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/element/8ffad05f-25db-4b70-821b-f395fd70359e/click {“sessionId”:“47657269-6060-405d-929d-aewfyuefuiux”,“id”: “8ffad05f-25db-4b70-821b-f395fd70359e”} 11:17:11.641 调试 完成请求 11:17:12.142 DEBUG POST http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/element {“使用”:“标签名称”,“sessionId”: "47657269-6060-405d-929d-aewfyuefuiux", "值": "html"}
11:17:12.697 调试完成请求 11:17:12.697 调试获取 http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/element/9f198a5c-56e2-4358-bb44-cb39930f3a8b/enabled {“sessionId”:“47657269-6060-405d-929d-aewfyuefuiux”,“id”: “9f198a5c-56e2-4358-bb44-cb39930f3a8b”} 11:17:13.233 调试 完成请求 11:17:13.234 DEBUG POST http://127.0.0.1:60462/session/47657269-6060-405d-929d-aewfyuefuiux/execute_async {"sessionId": "47657269-6060-405d-929d-aewfyuefuiux", "args": [], “脚本”:“如果(!window.jQuery){var a=document.getElementsByTagName('head')[0];var b=document.createElement('script');b.type='text/javascript';b.src=document.location.protocol+'//code.jquery.com/jquery-1.11.3.min.js'; a.appendChild(b);}var cb=arguments[arguments.length-1];if(window.angular){var $inj;try{$inj=angular.element(document.querySelector('[data-ng-app],[ng-app],.ng-scope')||document).injector()||angular.injector (['ng'])}catch(ex){$inj=angular.injector(['ng'])};$inj.get=$inj.get||$inj;$inj.get('$browser ').notifyWhenNoOutstandingRequests(function(){cb(true)})}else{cb(false)}"} 11:17:13.739 调试完成请求 11:17:13.808 失败 WebDriverException:消息:在异步脚本期间检测到页面重新加载 11:17:13.809 DEBUG Traceback(最后一次调用):文件 "",第 2 行,在 click_element 文件中 "c:\Python27\lib\site-packages\Selenium2Library\keywords\keywordgroup.py", 第 15 行,在 _run_on_failure_decorator 返回方法(*args,**kwargs)文件“C:\Users\user1\eclipse-workspace\RobotWorkspace\Projects\Library\ExtendedSelenium2Library\keywords\extendedelement.py”, 第 57 行,在 click_element 中 self._wait_until_page_ready() 文件“C:\Users\user1\eclipse-workspace\RobotWorkspace\Projects\Library\ExtendedSelenium2Library\keywords\extendedwaiting.py”, 第 421 行,在 _wait_until_page_ready 响应['响应'] = self._wait_until_script_ready(浏览器,超时,脚本,*args)文件 "C:\Users\user1\eclipse-workspace\RobotWorkspace\Projects\Library\ExtendedSelenium2Library\keywords\extendedwaiting.py", 第 435 行,在 _wait_until_script_ready response = browser.execute_async_script(script, *args) 文件 "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 第 564 行,在 execute_async_script 'args': convert_args})['value'] 文件 "c:\Python27\lib\site-packages\Selenium2Library\webdrivermonkeypatches.py", 第 11 行,在执行中 结果 = self._base_execute(driver_command, params) 文件 "c:\Python27\lib\site-packages\selenium\webdriver\remote\webdriver.py", 第 308 行,执行中 self.error_handler.check_response(response) 文件 "c:\Python27\lib\site-packages\selenium\webdriver\remote\errorhandler.py", 第 194 行,在 check_response 中 raise exception_class(message, screen, stacktrace) 11:16:07.972 TRACE 参数:[]
【问题讨论】:
-
请发布日志或异常堆栈跟踪,以便我们得出确切的问题
-
除了日志和跟踪消息,还请提供一个小的minimal reproducible example。如果没有任何代码,就会猜测导致此问题的原因。
-
谢谢。更新了主帖中的日志。另外让我提一下,在脚本查找该元素之前,我添加了“设置浏览器隐式等待 10 秒”以解决任何竞争条件或元素不可用。
标签: selenium google-chrome selenium-webdriver selenium-chromedriver robotframework