从Robot Framework中返回的窗口标题列表中选择一个窗口?

时间:2018-03-15 16:05:22

标签: google-chrome selenium internet-explorer firefox robotframework

我想从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?

3 个答案:

答案 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