如何修复机器人框架中的“找不到具有定位器的元素”

时间:2019-11-23 20:29:02

标签: python selenium automated-tests robotframework

我需要编写一个脚本,在其中可以使用关键字进行搜索并测试是否会显示某个主题,但是我无法获取搜索ID。这是我的脚本。

*** Settings ***
 Library    SeleniumLibrary
 Suite Setup     Go to homepage
 Suite Teardown     Close All Browsers

 *** Variables ***
 ${HOMEPAGE}     https://www.mdh.se/utbildning/kurser
 ${BROWSER}      chrome

 *** Test Cases ***
 Google cloud and find Industrial Systems in Cloud Computing
  Google and check results         cloud       Industrial Systems in Cloud Computing

 *** Keywords ***
 Google and check results
  [Arguments]         ${searchkey}        ${result}
 Input Text     id=occasionsTableen_UK_filter     ${searchkey}
 Wait Until Page Contains      ${result}
 Go to homepage
  Open Browser     ${HOMEPAGE}     ${BROWSER}

这是错误消息

 Google cloud and find Industrial Systems in Cloud Computing           | FAIL |
 Element with locator 'id=occasionsTableen_UK_filter' not found.

3 个答案:

答案 0 :(得分:1)

错误告诉您找不到元素。

可能有几种原因。它可能确实不在页面上。或者,它可能不是最初在页面上,而是在测试运行后的某个时刻异步添加的。或者,该元素可能位于iframe中。或者,由于发生意外错误或重定向,您可能会位于与假设的页面不同的页面上。

每个问题都需要不同的解决方案。您可能只是有一个错误的定位器,在这种情况下,您需要确定什么是正确的定位器,然后使用它。或者,您可能需要在致电input text之前先致电Wait until page contains element。或者,您可能需要调用Select frame才能切换到嵌入式框架。或者,您可能需要在致电input text之前验证您是否在正确的页面上。

答案 1 :(得分:0)

该页面没有具有该ID的元素。您可以使用Chrome开发人员的工具->元素轻松进行检查,然后使用Ctrl+F通过ID,类,xpath等搜索元素。

Chrome find element

答案 2 :(得分:0)

xpath不正确! 使用chrome按F12并将xpath复制到正确的元素。 您的应该是这样/// * [@ id =“ occasionTableen_UK_filter”]

具有ID的示例xpath: // * [@ id =“ name”]