Robot框架中如何获取当前URL?

问题描述 投票:0回答:4

单击“应用”链接时,它将在 Robot 框架中打开一个新浏览器。如何获取该页面的当前 url?这是代码:

Open Server     
Set Browser Implicit Wait   60  
Go To   ${server}/jobs  

Element Should Be Visible   xpath=.//*[@id='txtjobsearch']  

Input Text  xpath=.//*[@id='txtjobsearch']  ${job Title search}

Element Should Contain  xpath=(.//*[@class='clearfix tit-job']/div)[1]  ${Job title}

Element Should Be Visible   xpath=(.//*[@class='btn btn-sm btn-primary btnApply'])[1]   

Click Element   xpath=(.//*[@class='btn btn-sm btn-primary btnApply'])[1]

在此行之后,它会打开一个新窗口。如何获取新打开页面的url并进行输入文本等操作?

Set Browser Implicit Wait   20  

Wait Until Page Contains Element    xpath=.//*[@class='text-primary']   
selenium-webdriver robotframework
4个回答
9
投票

试试这个:

${url}=   Get Location

4
投票

使用 执行 Javascript SeleniumLibrary 关键字可以轻松获取当前 URL:

${url} =  Execute Javascript  return window.location.href;

1
投票

您是否尝试过使用“选择窗口”关键字?

http://rtomac.github.io/robotframework-selenium2library/doc/Selenium2Library.html#Select%20Window

Click Link  popup_link  # opens new window  
Select Window   popupName       
Title Should Be Popup Title     
Select Window           # Chooses the main window again

您似乎希望验证新窗口的网址,这应该可以通过以下方式轻松实现:

Select Window | url=https://google.com

显然您需要将上面的网址替换为您期望的网址。 让我们知道您的进展如何。


0
投票

如果在机器人测试打开经过身份验证的 URL(例如 google auth 等)后您位于浏览器页面上,那么 获取位置 可能会返回一个包含大量详细信息的相当大的字符串。

但是,登录后,如果您单击浏览器上的任意随机元素,然后尝试获取位置,您将获得所需的 URL。当然,然后您只需从返回的字符串(URL)中删除先前单击的随机项目部分即可。

© www.soinside.com 2019 - 2024. All rights reserved.