在Robot框架或Python中使用部分url值选择窗口

在Robot框架或Python中使用部分url值选择窗口,python,selenium-webdriver,robotframework,Python,Selenium Webdriver,Robotframework,我需要通过点击网页上的元素来测试外部链接是否是活动的和可访问的。下面是一个例子,我们需要点击链接导航到panynj.gov。问题是: 在html代码中,url编码为href=”http://www.panynj.gov/“,因此缺少安全协议https: 如果我们点击链接,打开的URL是“https://www.panynj.gov/港务局/en/index.html” 由于新打开的URL与原始href值不匹配,因此我的脚本无法选择新打开的选项卡 我正在寻找一种解决方案,可以: 使用部分URL文本

我需要通过点击网页上的元素来测试外部链接是否是活动的和可访问的。下面是一个例子,我们需要点击链接导航到panynj.gov。问题是:

  • 在html代码中,url编码为href=”http://www.panynj.gov/“,因此缺少安全协议https:
  • 如果我们点击链接,打开的URL是“https://www.panynj.gov/港务局/en/index.html
  • 由于新打开的URL与原始href值不匹配,因此我的脚本无法选择新打开的选项卡

    我正在寻找一种解决方案,可以:

  • 使用部分URL文本选择新打开的选项卡。例如,我可以从href值中删除http://并使用“www.panynj.gov”选择新打开的选项卡,或者
  • 我可以从所有选项卡中选择最后打开的选项卡(从技术上讲,应该是在元素上单击操作之后打开的选项卡),并运行检查
  • 我的代码如下:

    *** Test Cases ***
    
    Test for Selecting Tab using partial URL
       go to                ${HomePage}
       Click Element        xpath://*[@href="http://www.panynj.gov/"]   
       Test Navigation to unsecured url     http://www.panynj.gov/      ${HomepageTitle}
    
    
    *** Keywords ***
    
    Test Navigation to unsecured url
        [Arguments]     ${href}     ${Title_}
        ${str} =   Replace String   ${href}    http    https
        select window    url:${str}
        ${location}     get location
        run keyword if  "${Location}"=="${str}"    close window
        select window    ${Title_}
    
    根据中的答案,我成功地解决了问题,并使用部分URL文本进行导航