加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby – Watir-Webdriver是否支持点击目标为javascript的链接?

发布时间:2020-12-17 03:22:22 所属栏目:百科 来源:网络整理
导读:我是 Ruby和Watir-Webdriver的新手.我有一套用VBScript编写的自动化网站,我想将它转换为Ruby / Watir,因为我现在必须支持Firefox.我发现我真的很喜欢Ruby,而且我正在研究Watir,但我花了一周的时间试图让Webdriver甚至显示我的登录屏幕. 该网站以“我同意”区
我是 Ruby和Watir-Webdriver的新手.我有一套用VBScript编写的自动化网站,我想将它转换为Ruby / Watir,因为我现在必须支持Firefox.我发现我真的很喜欢Ruby,而且我正在研究Watir,但我花了一周的时间试图让Webdriver甚至显示我的登录屏幕.

该网站以“我同意”区域的“警告屏幕”开头.用户点击我同意并出现登录屏幕.

<body onload="showMessage('true')"><div id="login"><div id="message"><map name="accept">

<area href="javascript:showLogin();" shape="rect" coords="280,390,384,432" />

</map></div></div></body>

我需要点击该区域来显示登录屏幕(这是同一页面,一个表格真的,只是隐藏).我用VBScript整天做这个:

objExplorer.Document.GetElementsByTagName("area")(0).click

但是,使用Watir-Webdriver,browser.area(:index,0).click什么都不做.

puts browser.area(:index,0).shape
=>RECT

puts browser.area(:index,0).coords
=>280,432

所以,我知道脚本可以“看到”区域元素并读取其属性.它对click事件没有任何作用.

如果我在href本身使用browser.goto:

browser.goto("javascript:showLogin();")

登录变得可见,但我无法与元素交互(设置用户名和密码的文本字段).我正在查看打开开发人员工具窗口的页面(查看HTML),它只是说“正在加载…”.

这是我被困的地方.有趣的是,如果我使用登录表单的名称并执行以下操作:

browser.form(:name,"LoginForm").submit

我从用户名和密码为空的表单中获取弹出消息,因此仍然存在一些交互.

当然,如果我手动输入用户名/密码,即使表示“正在加载……”,我也可以提交表格.

我理解“when_present.click”和等待浏览器的其他技术;这些都行不通.我的困境是我无法点击该区域,如果我在javascript上使用goto,则浏览器会忽略Watir的自动化.

谢谢你的帮助.即使回答“抱歉,Watir或Webdriver不会这样做”也是我可以接受的.它将允许我继续前进并寻找其他解决方案.

在评论中的问题后编辑:

对不起,该网站不公开,所以我无法发布链接.
至于在Firefox中工作,脚本工作得很好. IE正在解决这个问题.这些评论让我想到:我第一次导航到网站时,确实得到了“……不是由可信任的证书……”证书错误.我在IE中获得的证书错误是否会在呈现表单之前导致与自动化的某种断开?我使用stackoverflow上的一行来点击证书错误:

browser.goto("javascript:document.getElementById('overridelink').click()")

但现在我想也许这可能是问题的一部分.我已经转到我的IE(使用IE 9)选项并取消选中用于检查证书的安全选项,但无济于事.如果这可能导致问题,我将不得不与基础架构团队协商生成证书,以便我们在每次构建新服务器时下载.

解决方法

好吧,我想在阅读了数百个帖子和数小时的Google搜索后,我终于找到了解决我的问题的方法:browser.execute_script.

browser.execute_script("showLogin();")

就这么简单.使用browser.goto挂载加载页面和webdriver超时.使用execute_script非常有效!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读