selenium - 用于单击按钮的正确语法

标签 selenium robotframework

我正在编写一个机器人框架/Selenium 测试脚本来验证网站的登录过程。我无法获得正确的语法来自动按下登录按钮。这是机器人脚本:

*** Settings ***
Documentation     Project Automated Test
Library           SeleniumLibrary

*** Variables ***
${LOGIN URL}      http://localhost/project
${BROWSER}        Chrome

*** Test Cases ***
Valid Login
    Open Browser To Login Page
    Maximize Browser Window
    Welcome Page Should Be Open
    Login_User
    [Teardown]    Close Browser

*** Keywords ***
Open Browser To Login Page
    Open Browser    ${LOGIN URL}    ${BROWSER}

Welcome Page Should Be Open
    Page should contain  Project Tasks

Login_User
    Click Button  Login

这是登录按钮的代码:

<input class="btn" type="button" onclick="
                if(document.getElementById('authentication').style.display == 'none'){
                    $('#authentication').slideDown('slow');
                                    } else {
                    $('#authentication').slideUp('slow');
                }
                " href="#" value="Login">

当脚本启动时,Chrome 将打开并且网页将正确显示。我可以在网页上看到登录按钮。我尝试了“单击按钮定位器”参数的各种组合(登录、值=登录、文本=登录)。每次尝试都会产生“找不到定位器的按钮”消息。这是我使用 Robot Framework/Selenium 的第一个项目,因此我们将不胜感激。谢谢!

最佳答案

Third 参数是您的定位器,您可以使用 id、name、xpath 或 css 选择器。由于 id 和 name 不可用,您可以使用 xpath 或 css 选择器。

 Login_User
        Click Button  xpath://input[@class='btn'][@value='Login']

或 CSS 选择器

Login_User
        Click Button  css:input.btn[value='Login']

您可以引用以下robot framework文档。

关于selenium - 用于单击按钮的正确语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55938139/

相关文章:

javascript - 解决缓慢的 headless 浏览器渲染 html、javascript 到 python 中的屏幕截图图像的解决方案?

selenium - 使用 Selenium 和 Python 提取网站文本

java - 等待特定文本显示在下拉菜单中 - selenium

automation - 机械手框架:套件设置和测试设置之间的区别?

robotframework - 在机器人框架中获取元素属性

python - 使用 RobotFrameWork 两次调用 Web 服务之间的等待时间

java - Selenium 和 AssertTrue() 连接

python - 找不到满足 Selenium 要求的版本;在 Python3.6.5 上安装 Selenium 时找不到与 selenium 匹配的分布

continuous-integration - 使用 GitLab CI/CD 设置机器人框架管道

python - robotsframework:定义类中可用的关键字