【问题标题】:Using Selenium IDE to Identify and manipulate a div/input/span combination使用 Selenium IDE 识别和操作 div/input/span 组合
【发布时间】:2016-07-19 04:14:51
【问题描述】:

以下 HTML 是 facebook 事件创建对话框的一部分。我正在尝试将小时字段设置为值 9,并尝试了许多不同的组合,以 StackExchange 其他人的建议为基础。这个让我着迷:

<div class="_4nxi" dir="ltr">
<div class="_4nx7 _4nww _5pw0">
<div class="_4nwx">
  <label style="background-color: transparent;" class="_4nx3 _5pw6" for="js_9" aria-hidden="true">7</label>
  <input style="background-color: rgb(255, 255, 255);" id="js_9" class="_4nx5" aria-label="hours" aria-valuetext="7" role="spinbutton">
</div>
</div><span class="_4nxh _5pwa" aria-hidden="true">:</span>
<div class="_4nxe _4nww _5pw0">
<div class="_4nwx">
  <label class="_4nx3 _5pw6" for="js_a" aria-hidden="true">30</label>
  <input id="js_a" class="_4nx5" aria-label="minutes" aria-valuetext="30" role="spinbutton">
</div>
</div>
<div class="_4nxa _4nww _5pw0">
<div class="_4nwx">
  <label class="_4nx3 _5pw6" for="js_b" aria-hidden="true">AM</label>
  <input id="js_b" class="_4nx5" aria-label="meridiem" aria-valuetext="AM" role="spinbutton">
</div>
</div>
</div>

我不认为输入 (id=js_9) 是要操作的字段,它似乎用于其他目的,即作为“旋转按钮”。不过我已经试过了。 外部 div 的 ID 在单击值时会动态变化,因此我尽量避免使用它(并且没有在上面包含它)。

我尝试使用 typesendKeystypeKeys 但我认为没有正确的命令和各种 div/输入和跨度的组合意味着我错过了解决方案。记录动作显示没有交互。建议表示赞赏。

我尝试了以下方法:

typeKeys|//div[@class='_4nx7 _4nww _5pw0 _5pw1']|9
click|//div[@class='_4nx7 _4nww _5pw0 _5pw1']

typeKeys|//label[@class='_4nx3 _5pw6']|9
click|//label[@class='_4nx3 _5pw6']

typeKeys|id=js_9|9
click|id=js_9

sendKeys|//div[@class='_4nwx']|9

【问题讨论】:

  • 你真的需要使用 Selenium IDE 来创建 facebook 事件吗?你为什么要这么做?

标签: selenium css-selectors selenium-ide


【解决方案1】:

标签后面有一个常用的输入字段。所以你可以:

sendKeys | //input[@class='_4nx5'] | 9

有用的作弊 - 永远不要在 facebook 上使用 id。它不稳定。

【讨论】:

  • 这确实有效,尽管它也不稳定,因为该样式已被其他字段使用,即同一页面上的另一个小时字段!所以我使用了这个://th[text()="Start"]/../td/div/div/div/div/div/div/div[input/@aria-label='hours']/input/ 这会查看内部 HTML,并通过查看行名来关注特定时间。我同意@Antesser id 不稳定。我这样做是为了为 API 项目创建一些原型和客户用例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-22
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-01-29
  • 1970-01-01
  • 2019-02-09
相关资源
最近更新 更多