javascript - 如何使用 Python、JavaScript 或 Robot Framework 和 Selenium 使用部分标题文本导航到新的浏览器窗口

标签 javascript python python-3.x selenium robotframework

在我的测试中,我们需要点击在新标签页中打开网页的链接。在某些情况下,我们会看到由于标题文本中包含多个空格或制表符而导致测试失败。此类标题的示例之一是 -

"Looking for more information about US?${SPACE}${SPACE}Find out more from ... Get your questions answered."

我正在尝试使用部分文本“寻找有关美国的更多信息”而不是使用整个标题文本来切换到窗口。但到目前为止还没有找到一种方法来做到这一点。

我目前的代码如下:

Test for "Frequently Asked Question"" Link at the bottom panel
    Hide Promo Carousel
    execute javascript  window.scrollTo(0,document.body.scrollHeight)
    Click External Link and Return      partial link:Frequently Asked Questions     Looking for more information about us?  Find out more from ...... Get your questions answered.

关键字是:

Click External Link and Return
    [Arguments]     ${Element}  ${ExtUrl}
    ${CurrTitle}=   get title
    click element   ${Element}
    sleep   5s
    run keyword and continue on failure  select window  ${ExtUrl}
    sleep   1s
    run keyword and continue on failure  select window   ${CurrTitle}

有没有办法使用标题中的部分文本定位并导航到窗口?请建议在机器人框架、Python 或 JavaScript 中是否有任何方法可以实现这一点。

最佳答案

使用下面的示例,自定义关键字将使用当前浏览器,然后使用模式搜索选项卡并选择它。如果结果多于或少于 1 个,它将失败。

*** Settings ***
Library    SeleniumLibrary
Library    Collections

*** Test Cases ***
Select Window Using Partial Title
    Open Browser    http://www.google.com    chrome

    Click Element    link:About    CTRL
    Sleep    5s
    Title Should Be    Google


    Switch Window Using Title Pattern    Over*
    Title Should Be    Over - Google

    [Teardown]    Close Browser

*** Keywords ***


Switch Window Using Title Pattern
    [Arguments]    ${title_pattern}
    ${current_title}    Get Title            # Save the current  tab title
    ${window_titles}    Get Window Titles    # Cycles through the tabs.
    Switch Window       ${current_title}     # Restores the original tab focus

    ${match_count}      Get Match Count    ${window_titles}    ${title_pattern}

    Run Keyword If    '${match_count}'=='0'    Fail    No Browser Tabs found that meet the "${title_pattern}" pattern.
    Run Keyword If    '${match_count}'>'1'    Fail    Too many Browser Tabs found that meet the "${title_pattern}" pattern.

    ${matches}    Get Matches        ${window_titles}    ${title_pattern}   
    Switch Window    ${matches}[0]

关于javascript - 如何使用 Python、JavaScript 或 Robot Framework 和 Selenium 使用部分标题文本导航到新的浏览器窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59569335/

相关文章:

python - Python 3.2 中的部分正则表达式匹配

python - OpenCV 校准相机裁剪错误

javascript - 如何从所选文本复制格式?

javascript - 文本区域选择索引

javascript - 在 javascript 中检查条件的奇怪行为

python - 对列进行分组并识别不属于该组的值

php - 从 PHP 中提取的目录列表中的 jQuery Prop 父复选框

python 类型错误: unbound method error

python - 演示如何使用 boto3 从 S3 存储桶中删除一个或多个特定 key

python - 记录抽象基类的属性?