我是机器人框架的新手,学习了一些机器人框架的基础知识。当我试图在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}