【问题标题】:css=div.clasname seems not working in RobotFrameworkcss=div.classname 似乎在机器人框架中不起作用
【发布时间】:2020-01-08 02:16:08
【问题描述】:

我尝试在几个元素中使用单击元素 css=div.classname 并且不工作。我在 Python 2.7 中使用机器人框架。和 Selenium 2 库 这是我的元素之一:

这是我要选择的单选按钮:

 span class="docssharedWizToggleLabeledLabelText freebirdFormviewerViewItemsRadioLabel" dir="auto">Prevention</span>

我的 Robotframework 代码不工作是:

Click correct answer
    click element    css=div.ocssharedWizToggleLabeledLabelText freebirdFormviewerViewItemsRadioLabel

感谢大家的帮助。

他是图像以及单选按钮在可滚动框架内的位置

【问题讨论】:

  • “不工作”是什么意思?你有错误吗?如果是这样,错误是什么?
  • 您是否仅限于使用 css=* 选择器?您是否尝试过其他选择器,例如 xpath?
  • 当我说不工作时,我的意思是 Robotframework 不会选择元素。在日志文件状态中找不到它。我在 CSS 之外使用过其他的并且工作正常。特别是如果我使用 id 作为选择。到目前为止,我还不能使用 CSS=DIV.CLASS 或使用名称作为选择器。不知道是不是版本问题。
  • 我尝试了另一种方法,但仍然没有运气。我使用带有 Firefox 浏览器的 Xpath 检查器来获取单选按钮的 XPath。我用这个命令来选择它。 Selenium2Library.click element xpath=id('mG61Hd')/x:div/x:div[2]/x:div[2]/x:div[1]/x:div[2]/x:div/x :content/x:div/x:label[3]/x:div/x:div[2]/x:div/x:span 我在日志中收到错误消息 Unable to locate an element with the xpath expression id ('mG61Hd')/x:div/...etc 因为以下错误:错误:未声明命名空间前缀:x Xpath 检查器具有命名空间 x。所以我不明白为什么它说没有声明!!!

标签: robotframework


【解决方案1】:

希望这能解决:

Click correct answer
    click element           sizzle=.docssharedWizToggleLabeledLabelText

【讨论】:

  • 我收到 Javascript 错误。我使用 Selenium2 库。我还需要添加其他库吗?这是 Log 12:17:58.999 INFO Clicking element 'sizzle=.docssharedWizToggleLabeledLabelText'。 12:17:59.477 FAIL WebDriverException:消息:JavaScript 错误
  • 您的页面中有多少个 class=.docssharedWizToggleLabeledLabelText ?您能否使用控制台进行检查并输入 $(".docssharedWizToggleLabeledLabelText").length
  • 感谢您的回答。我尝试使用控制台,但我得到 Unable to get property 'length' of undefined or null reference 。但是我使用了 Dom 资源管理器,我发现对于我页面上的每个单选按钮我都有一个匹配项,所以我至少有 25 个匹配项。如果您愿意,您可以自己查看页面。 sites.google.com/site/softwareqaacademy/home/… 再次感谢。
【解决方案2】:

正确答案:

Selenium2Library.Select Frame   xpath=//iframe[@title="QUIZ : QA VS TEST"]
Selenium2Library.click element  xpath = //div[contains(@class, "ItemHeader") and descendant::div[text()="What describes best Quality assurance "]]/..//div[@data-value="Prevention"]
  • 第一个命令使用 Xpath 选择 Iframe
  • 第二个命令使用 Xpath 选择单选按钮

【讨论】:

    【解决方案3】:

    你使用 div.class 类。我看到了 2 个问题:

    1. 它是跨度,而不是 div

    2. 通过 2 个类使用选择器:

      .class.class

    所以,请试试这个:

    click element    css=span.ocssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel
    

    【讨论】:

    • 为什么这个答案比他们正在做的更好?如果您解释了您所做的更改,您的答案会更好,否则读者只能一次将您的答案与问题的一个字符进行比较。
    • 它没有用。我在上面附加了一个打印屏幕,以查看单选按钮在哪里。基本上是在一个可滚动的框架内。
    • 这来自日志文件 12:13:30.119 信息单击元素“css=div.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel”。 12:13:30.842 FAIL ValueError:元素定位器“css=div.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel”不匹配任何元素。
    • 感谢您的回答,但仍然无法正常工作。找不到元素。我什至试图让它等待以确保元素是可见的,但不是运气。这是日志关键字 Selenium2Library 。等到元素可见 ss=span.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel 文档:等到用locator 指定的元素可见。开始/结束/经过:13:39:45.494 FAIL 元素定位器 css=span.docssharedWizToggleLabeledLabelText.freebirdFormviewerViewItemsRadioLabel' 5 秒后没有匹配任何元素
    猜你喜欢
    • 2015-12-07
    • 1970-01-01
    • 2017-08-19
    • 2020-12-14
    • 1970-01-01
    • 2022-08-04
    • 2017-06-25
    • 1970-01-01
    • 2016-07-15
    相关资源
    最近更新 更多