0

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

4

3 回答 3

0

只需使用元素的适当定位器策略,因为您使用了元素的 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"]
于 2022-01-25T10:48:28.507 回答
0

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

${element1}=  Asign Id To Element  contains...etc
Execute Javascript   arguments[0].click();   Arguments   ${element1}
于 2022-02-07T14:44:35.580 回答
0

我发现的一个快速替代方法是您可以打开此链接: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')]
于 2022-01-24T21:53:02.867 回答