繁体   English   中英

当 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”的按钮。

我发现的一个快速替代方法是您可以打开此链接: https://www.facebook.com/login/web/然后:
SeleniumLibrary.Wait until Element is Visible xpath://a[contains(text(),'Sign up for Facebook')] 10s
点击元素 xpath://a[contains(text(),'Sign up for Facebook')]

只需使用元素的正确定位器策略,因为您使用了元素的 id 属性,但是如果您每次刷新页面都会更改,这意味着 id 属性值是动态的,您可以 go 用于元素的文本来识别它每次都是独一无二的。

*** Test Cases ***
Create new facebook account

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

有时这对动态元素很有效:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM