【问题标题】:How do you submit a form, using Selenium, via javascript, from a clicked <div>?您如何使用 Selenium 通过 javascript 从单击的 <div> 提交表单?
【发布时间】:2012-03-14 18:08:25
【问题描述】:

我在 html 页面中有一个 div,如下所示:

<div id="save_one" onclick="save_one()" >Save Contact Info</div>

save_one() 获取下面表单中的所有表单数据,并使用 ajax 调用保存。

点击 div 应该可以保存内容,它确实使用鼠标,但我已经 无法让它与 Selenium 一起工作。

页面有一个

<img onclick='edit_table()'> 

点击时打开表格 以表格形式进行编辑。我可以用硒做到这一点。我也可以 使用 Selenium 使用新数据更新表单。

当尝试使用上面显示的 div 提交它时,它会失败,除非我提取 .js 文件中的脚本并使用 Selenium 运行它:

$sel->get_eval( $js_save_one );   # $js_save_one is the js sub in a string in the perl 
                                  # test file

selenium 是否只处理某些 Javascript 功能?如果那是 不是这样,有谁知道为什么它不能像使用鼠标那样操作?

【问题讨论】:

    标签: perl selenium selenium-rc


    【解决方案1】:

    使用 Selenium firefox 扩展,它可以为您用于运行 selenium 的任何语言创建代码,它会告诉您如何执行此操作。基本上虽然有一个点击按钮/图像的功能。

    【讨论】:

    • Selenium 遇到了 javscripting 这类东西的问题,如果可以,请尝试识别 html 中的表单元素。
    • 好吧,如果是这样,那我可能有麻烦了。另外我认为问题之一可能是在这种情况下没有要提交的表格。这只是不好的html。表格变成了输入表单,但它们只是用作 js。没有表格。我知道单击按钮和图像、提交表单等的功能。我只是在单击启动 ajax 调用的 div 时遇到问题。我会检查 FF 插件。谢谢。
    • 当我尝试研究它时,我个人永远无法使用 selenium 框架和 selenium 服务器(jar 文件)来触发任何 js 函数和/或工作,因为他们确实说他们支持它,除了其他人抱怨 JS 不工作外,我什么也没找到。虽然 FF 插件确实让我的项目中的开发变得更加容易,但我会将输出代码放入我自己的控制测试的项目中
    【解决方案2】:

    由于元素有一个id 属性,它应该很简单:

    $sel->click('id=save_one');

    或许:

    $sel->mouse_down( 'id=save_one' );
    $sel->mouse_up( 'id=save_one' );
    

    任何一个都应该在浏览器中启动 JavaScript 操作。

    【讨论】:

    • 是的,让这些工作我没有任何问题。谢谢。
    猜你喜欢
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    相关资源
    最近更新 更多