在robot框架中,当id是动态的时,如何定位要点击的按钮的id



我是机器人框架的新手,学习了一些机器人框架的基础知识。当我试图在facebook上创建一个新帐户时,我使用了id元素"创建新帐户";但每次当它打开一个新页面时,都会生成新的id。有人能帮助我理解当id是动态的时如何点击按钮吗。

*** Settings ***
Library    SeleniumLibrary
*** Test Cases ***
facebooklogin
open browser    https://www.facebook.com/    firefox
maximize browser window
set selenium timeout    10s
click button    id:u_0_d_si

错误消息:找不到定位器为"id:u_0_d_si"的按钮。

只需使用元素的适当定位器策略,因为您已经使用了元素的id属性,但如果每次页面更改时都刷新页面,这意味着id属性值是动态的,您可以在其中查找元素的文本,以便每次都唯一地识别它。

*** Test Cases ***
Create new facebook account
Open Browser    https://www.facebook.com/    firefox
Maximize Browser Window
Set Selenium Timeout    10s
Click Element    xpath:.//a[text()="Create New Account"]

我发现的一个快速替代方案是,您可以打开此链接:https://www.facebook.com/login/web/然后:

SeleniumLibrary.Wait Until Element Is Visible 
xpath://a[contains(text(),'Sign up for Facebook')]   10s        
Click Element    xpath://a[contains(text(),'Sign up for Facebook')]

有时这对动态元素非常有效:

${element1}=  Asign Id To Element  contains...etc
Execute Javascript   arguments[0].click();   Arguments   ${element1}

相关内容

  • 没有找到相关文章

最新更新