当 id 在机器人框架中动态时,如何找到要单击的按钮的 id
how to locate an id of the button to click when id is dynamic in robot framework
我是机器人框架的新手,学习了一些机器人框架的基础知识。当我尝试在 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' 的按钮。
我发现的一个快速替代方法是您可以打开此 link: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')]
只要使用适当的元素定位器策略,因为你已经使用了元素的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"]
有时这对动态元素非常有效:
${element1}= Asign Id To Element contains...etc
Execute Javascript arguments[0].click(); Arguments ${element1}
我是机器人框架的新手,学习了一些机器人框架的基础知识。当我尝试在 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' 的按钮。
我发现的一个快速替代方法是您可以打开此 link: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')]
只要使用适当的元素定位器策略,因为你已经使用了元素的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"]
有时这对动态元素非常有效:
${element1}= Asign Id To Element contains...etc
Execute Javascript arguments[0].click(); Arguments ${element1}