使用 xpath 时 Selenium 测试失败
Selenium test fails when using xpath
我正在使用带有 selenium2library 的机器人框架进行一些测试,这是我的测试文件:
*** Settings ***
Library Selenium2Library
*** Variables ***
${URL_LOCATION} http://localhost:9000/apps/depot/#
${BROWSER_TYPE} chrome
*** Test Cases ***
Open browser to DEPOT page
Open Browser ${URL_LOCATION}
Click Element xpath=//div[@class="btn action xlarge nav-next"]
问题是第一步"Open Browser"成功后,第二步就失败了,我不明白为什么...
这是证明该元素存在的页面的一部分:
<div class='block action-block'>
<div class='btn action xlarge nav-next'>{{t step.next.caption }}
</div>
谢谢...
鉴于页面片段很短,很难判断。但我会尝试以下操作:
- 在单击元素之前使用
Wait Until Element Is Visible
。使用 Set Selenium Timeout
适当地为此设置超时。您至少应该得到一条更好的错误消息。
- 使用 Firefox 控制台(或其他浏览器中的类似控制台)验证您的 Xpath 表达式。
- 使用相对于其他元素的 Xpath 表达式。类似于
//div[@class='block action-block']/div
- 直接执行一些Javascript。例如,如果有一些带有 id 的元素,你可以这样调用
Execute Javascript document.getElementById("parent").children[0].click()
- 尝试其他点击命令,例如
Click Button
。我最近遇到了 Click Element locator
不起作用但 Click Link linkname
起作用的问题。
最后,根据我的经验,我总是会在 Xpath 表达式中使用单引号。但我想这不是这里的问题。
我正在使用带有 selenium2library 的机器人框架进行一些测试,这是我的测试文件:
*** Settings ***
Library Selenium2Library
*** Variables ***
${URL_LOCATION} http://localhost:9000/apps/depot/#
${BROWSER_TYPE} chrome
*** Test Cases ***
Open browser to DEPOT page
Open Browser ${URL_LOCATION}
Click Element xpath=//div[@class="btn action xlarge nav-next"]
问题是第一步"Open Browser"成功后,第二步就失败了,我不明白为什么...
这是证明该元素存在的页面的一部分:
<div class='block action-block'>
<div class='btn action xlarge nav-next'>{{t step.next.caption }}
</div>
谢谢...
鉴于页面片段很短,很难判断。但我会尝试以下操作:
- 在单击元素之前使用
Wait Until Element Is Visible
。使用Set Selenium Timeout
适当地为此设置超时。您至少应该得到一条更好的错误消息。 - 使用 Firefox 控制台(或其他浏览器中的类似控制台)验证您的 Xpath 表达式。
- 使用相对于其他元素的 Xpath 表达式。类似于
//div[@class='block action-block']/div
- 直接执行一些Javascript。例如,如果有一些带有 id 的元素,你可以这样调用
Execute Javascript document.getElementById("parent").children[0].click()
- 尝试其他点击命令,例如
Click Button
。我最近遇到了Click Element locator
不起作用但Click Link linkname
起作用的问题。
最后,根据我的经验,我总是会在 Xpath 表达式中使用单引号。但我想这不是这里的问题。