找不到带有定位器 'x​​path=//*[@id="1"]/button' 的元素

Sei*_*ion 2 robotframework selenium2library

我正在用 Selenium2 库编写机器人框架测试,但我无法访问按钮,一页上有许多相同的按钮,所以它没有 id。我尝试访问元素的那些方式:

Click Element   xpath=//*[@id="1"]/button
Click Button    xpath=//*[@id="1"]/button
Click Element   name=add
Click Button    name=add
Click Element   add
Click Button    add
Run Code Online (Sandbox Code Playgroud)

但它没有找到元素。我试过单击按钮,结果相同。元素是:

<button class="add-to-cart" name="add" data-id="1">Add Course</button>
Run Code Online (Sandbox Code Playgroud)

谁能帮助我我做错了什么?

Bry*_*ley 6

问题是您正在测试的页面使用 javascript 填充页面,但您的测试试图在 javascript 完成运行之前单击该按钮。您需要等待该元素,然后才能单击它。

这有效:

wait until page contains element  //button[@data-id='1']
click element  //button[@data-id='1']
Run Code Online (Sandbox Code Playgroud)