【问题标题】:Selenium + Ruby - Selecting Onclick in OutlookSelenium + Ruby - 在 Outlook 中选择 Onclick
【发布时间】:2012-10-25 14:23:35
【问题描述】:

我正在尝试选择这个。

<td colspan=2 align="right" class="txtpad">
<input type="submit" class="btn" value="Sign in" onclick="clkLgn()" 
onmouseover="this.className='btnOnMseOvr'" onmouseout="this.className='btn'"        
onmousedown="this.className='btnOnMseDwn'">
<input name="isUtf8" type="hidden" value="1">
</td>

然而,当我尝试这个时,

element3 = driver.find_element(:value, "Sign in")
element3.click

它不起作用。

如何点击按钮登录?

【问题讨论】:

  • 只是猜测。无论如何,第二行应该是element3.click()
  • 这不是问题;它适用于使用 element.click 的其他行。
  • 没问题;感谢您的回复。
  • 由于输入类型是提交,所以您是否尝试过使用 element3 = driver.find_element(:value, "Sign in").submit

标签: html ruby selenium selenium-webdriver


【解决方案1】:

find_element 不与 :value 一起使用。

实际上,它需要第一个参数作为您想要找到元素的方式,即 通过 :css 或 :xpath,在包含数据的第二个字符串之后找到特定元素。

所以在你的情况下,我们知道我们无法使用 :css 找到价值,但我们可以使用 :xpath 来做到这一点。

因此在这种情况下,你可以试试这个

element3 = driver.find_element(:xpath, '//*[contains(@value, "Sign in")]').first
element3.click

我已经在我的系统上尝试过这个。我认为这将完美运行。

【讨论】:

  • 注意:这个答案并没有像写的那样工作,但我仍然非常感激,因为它让我走上了正确的道路。在检查 Firefox 的 xpath 检查器并复制那里给出的 xpath 后,这行有效: element3 = driver.find_element(:xpath, '//*[@id="tblMid"]/tbody/tr[7]/td /table le/tbody/tr[3]/td/input[1]') 在此之后,element3.click 起作用了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-24
  • 2023-03-19
相关资源
最近更新 更多