【问题标题】:Using Ruby webdriver (Selenium 2.0) to click on a javascript link使用 Ruby webdriver (Selenium 2.0) 点击一个 javascript 链接
【发布时间】:2010-06-25 18:33:36
【问题描述】:

使用 ruby​​,如何让 webdriver 点击 javascript 链接?

我试图点击的链接是: <a class="TabOff" href=" javascript:showConfirm('/campustoolshighered/k12_admin_admin_menu.do');">Administration </a>

我可以通过 keyPress 事件触发 javascript 吗?如果是这样,有人知道这样做的语法吗?我在为 webdriver 找到一个好的参考时遇到了麻烦——尽管我知道它可能会随着它退出测试版而变得更好。

我还研究了 firewatir 和 mechanize。如果您有理由认为其中一种方法会更好,请告诉我为什么。它需要能够点击 javascript 链接并从电子表格或 csv 文件提交表单数据。

感谢您的帮助!

require 'rubygems'
require 'watir-webdriver'

ff=Watir::Browser.new(:firefox)
ff.goto("http://my-web-address")

#Put your user name. 
ff.text_field(:name,"user").set("my-username")

#Put your password.
ff.text_field(:name,"pass").set("my-passwd")

#Click Sign In button.
ff.button(:value,"Login").click

#Click on Administration tab. <-- This does not work!!
ff.link(:text, "Administration").click

【问题讨论】:

    标签: javascript ruby screen-scraping


    【解决方案1】:

    点击确实会触发javascript。你确定它实际上是在寻找链接吗?

    您的 HTML 源代码在“管理”一词后显示一个空格字符 也许是这个原因。

    检查是否

    ff.link(:text, "Administration").exists?
    

    返回真。

    或者尝试不同的匹配:

    ff.link(:class => 'tabOff').click
    

    注意:您也可以对 :text 使用正则表达式,例如

    ff.link(:text, /Administration/)
    

    希望能提供帮助。

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-01
      • 2013-10-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多