【问题标题】:selenium2library,how to get id from an attribute if it's not a web element?selenium2library,如果它不是 web 元素,如何从属性中获取 id?
【发布时间】:2016-10-23 02:09:09
【问题描述】:

我正在尝试从元素属性中获取元素 ID(此处为列表),但没有成功。这是我的 html 代码:

我试过了:

 get element attribute //*[@class="rqbar"]@id

有没有办法获取ID?

谢谢

【问题讨论】:

  • 实际上,这个列表在网页上是不可见的,它只是描述页面及其元素的 HTML 的开头。它是
      ,我的目标是(是)获取此页面的所有文本并将其与修复的静态文本进行比较,以查看是否缺少某些内容,就像我们对页面上的下拉菜单项所做的那样。跨度>
  • 如果它不在<body> 标签内,我认为 selenium 无法访问它。 Selenium 只能处理页面上可见的内容。
  • 当然在里面

标签: xpath robotframework selenium2library


【解决方案1】:

您的代码几乎是正确的。以下是我的更正:

*** Settings ***
Library                 Selenium2Library
Suite Teardown          Close All Browsers

*** Test Cases ***
StackOverflow
    Open Browser     http://www.google.com/    Chrome
    ${id}=           get element attribute     xpath=//*[@class="sbib_b"]@id

【讨论】:

  • 我试过你的,它成功了。我认为我的问题与网络元素的定义有关。因为在您上面提到的同一页面中,我尝试获取另一个“元素”的 ID,即 csi,但它失败了,因为它说它没有找到这个元素。即使它存在于 html ${test} 中获取元素属性 //*[@name="csi"]@id
  • xpath 之前有没有“xpath=”前缀? IIRC 这非常重要。这是否有效:获取元素属性 xpath=//*[@name="csi"]@id?
  • 是的,我确实有。我无法再试一次,因为在 google.com 上,textarea 目前没有 name 属性。
  • Google id 和类名会定期更改。我认为这是设计使然。右键单击文本框并选择检查以查看它的属性和新类名。
猜你喜欢
  • 2017-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-31
  • 1970-01-01
相关资源
最近更新 更多