我想从robotFramework中返回的窗口标题列表中选择一个窗口,代码如下:
Partager sur Facebook
${Window1Title}= Get Window Titles
Run Keyword If '${Window1Title}[]' == 'Facebook' ConnexionAndPartageFacebook
Run Keyword If '${Window1Title}' == 'Publier sur Facebook' PartageFacebook
它给我错误:
UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 28: ordinal not in range(128)
如何从返回的窗口标题中选择窗口2?
答案 0 :(得分:1)
下面的脚本将选择“主页”窗口
@{Window_List} List Windows
${Win_Index}= Get Index From List ${Window_List} Home
Run Keyword And Continue On Failure Wait Until Keyword Succeeds ${Timeout_20s} ${Timeout_2s}
... Select Window ${Window_List[${Win_Index}]}
这可以作为通用脚本通过将窗口名称作为参数传递来选择窗口
答案 1 :(得分:1)
这是一篇旧文章,但这里有思想提示。这取决于所使用的Selenium库的版本,get窗口标题在selenium2library中可以很好地工作,但如果窗口标题中有特殊字符,则与seleniumlibrary有关。请查看此问题以获取更多详细信息:https://github.com/robotframework/SeleniumLibrary/issues/1252。此问题已修复,并且在seleniumlibrary中运行良好。
回到问题,这是选择所需窗口的一种简单方法:
@{Windowtitles} Get Window Titles
${windowtoopen}= Get From List ${Windowtitles} -1
Select Window Title=${windowtoopen}
这将允许您选择窗口。
答案 2 :(得分:0)
这可以通过参考列表中的项目来完成。更多信息可以在优秀机器人框架用户指南的chapter on Variables中找到:
Run Keyword If '${Window1Title[1]}' == 'Facebook' ConnexionAndPartageFacebook