未处理的错误 "Cannot find context with specified id" 使用 Robot 框架
Unhandled error "Cannot find context with specified id" using Robot framework
我在使用 Robot 框架和 Selenium2Library 处理 iframe 时遇到问题。它抛出错误:
WebDriverException: Message: unknown error: unhandled inspector error: {"code":-
32000,"message":"Cannot find context with specified id"}
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 6.1.7601 SP1 x86_64)
我的测试代码是:
Fill In Description ${description}
Wait Until Element Is Visible ${FRAME} 40
Select Frame ${FRAME}
wait until page contains element ${IFRAME BODY}
Click Element ${IFRAME BODY}
wait until page contains element ${IFRAME BODY}
Clear Element Text ${IFRAME BODY}
wait until page contains element ${IFRAME BODY}
Input Text ${IFRAME BODY} ${description}
Unselect Frame
在步骤Input Text ${IFRAME BODY} ${description}
中失败
顺便说一句,我将此关键字重复用于出现此 iframe 的更多页面,但它仅在一次确切的情况下失败 - 但 html 代码对于所有 iframe 都是相同的,所以真的不明白为什么它会起作用有时..
很乐意提供任何帮助。
所以我不得不像这样更改代码以在其他框架中工作:
Log comment ${comment}
wait until element is visible ${RICH TEXT AREA} 40
sleep 1
click element ${RICH TEXT AREA}
Wait Until Element Is Visible ${FRAME} 40
Select Frame ${FRAME}
wait until element is visible ${IFRAME BODY} 20
input text ${IFRAME BODY} ${comment}
Unselect Frame
${IFRAME BODY}
在 Iframe 中仍然是 //body
并且令人惊讶的是它现在一直在输入文本......
不幸的是,如果没有睡眠它就无法工作:(但是如果有睡眠它就可以工作..
这个问题似乎在 chromedriver 中再次出现,最新的是:https://bugs.chromium.org/p/chromedriver/issues/detail?id=2198
根据这张票可以通过两种方式解决:
- 切换到没有这个问题的chromedriver版本
- 切换到帧后添加等待
我在使用 Robot 框架和 Selenium2Library 处理 iframe 时遇到问题。它抛出错误:
WebDriverException: Message: unknown error: unhandled inspector error: {"code":-
32000,"message":"Cannot find context with specified id"}
(Session info: chrome=55.0.2883.87)
(Driver info: chromedriver=2.25.426923 (0390b88869384d6eb0d5d09729679f934aab9eed),platform=Windows NT 6.1.7601 SP1 x86_64)
我的测试代码是:
Fill In Description ${description}
Wait Until Element Is Visible ${FRAME} 40
Select Frame ${FRAME}
wait until page contains element ${IFRAME BODY}
Click Element ${IFRAME BODY}
wait until page contains element ${IFRAME BODY}
Clear Element Text ${IFRAME BODY}
wait until page contains element ${IFRAME BODY}
Input Text ${IFRAME BODY} ${description}
Unselect Frame
在步骤Input Text ${IFRAME BODY} ${description}
顺便说一句,我将此关键字重复用于出现此 iframe 的更多页面,但它仅在一次确切的情况下失败 - 但 html 代码对于所有 iframe 都是相同的,所以真的不明白为什么它会起作用有时..
很乐意提供任何帮助。
所以我不得不像这样更改代码以在其他框架中工作:
Log comment ${comment}
wait until element is visible ${RICH TEXT AREA} 40
sleep 1
click element ${RICH TEXT AREA}
Wait Until Element Is Visible ${FRAME} 40
Select Frame ${FRAME}
wait until element is visible ${IFRAME BODY} 20
input text ${IFRAME BODY} ${comment}
Unselect Frame
${IFRAME BODY}
在 Iframe 中仍然是 //body
并且令人惊讶的是它现在一直在输入文本......
不幸的是,如果没有睡眠它就无法工作:(但是如果有睡眠它就可以工作..
这个问题似乎在 chromedriver 中再次出现,最新的是:https://bugs.chromium.org/p/chromedriver/issues/detail?id=2198
根据这张票可以通过两种方式解决:
- 切换到没有这个问题的chromedriver版本
- 切换到帧后添加等待