javascript - 使用 Ruby webdriver (Selenium 2.0) 单击 javascript 链接

标签 javascript ruby screen-scraping

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

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

我可以通过 keyPress 事件触发 JavaScript 吗?如果是这样,有人知道这样做的语法吗?我很难找到 webdriver 的良好引用 - 尽管我知道随着 Beta 版本的结束,它可能会变得更好。

我还研究了 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。您确定它确实找到了链接吗?

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

检查是否

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

返回 true。

或者尝试不同的匹配:

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

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

ff.link(:text, /Administration/)

希望能帮到你。

关于javascript - 使用 Ruby webdriver (Selenium 2.0) 单击 javascript 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120505/

相关文章:

javascript - 如何在 Javascript 中动态添加 href 参数

javascript - 在客户端读取xz文件

ruby - 区分命令行 Ruby 脚本信号的最佳方法

python - 当文本未出现在源中时从网站上抓取文本

python - 使用 lxml 和请求进行 Web 抓取

javascript - 使用 css 过渡显示文本溢出(从右到左)

javascript - 如何在div点击上添加css动画

ruby-on-rails - 从助手规范中获取 'action_name' 或 'controller'

ruby-on-rails - 如何重构这段 Rails 代码?

java - 有没有一个库可以通过 AJAX/javascript 艰难地进行?