你如何从selenium访问javascript并提交表单?

时间:2012-03-13 18:32:54

标签: perl selenium

我有一些使用JS提交表单的HTML:

<form onsubmit="doform();return false;">

在测试脚本中,我根据我在SO和其中找到的内容执行以下操作 WWW :: Selenium docs。

$sel->get_eval("this.browserbot.getUserWindow().doform()");

普通表单提交工作正常,但在selenium代码中不起作用。

如果我将JS从js文件中删除并在测试文件中创建一个字符串,那么它可以正常工作。

my $js = "{ //do some javascript stuff here; }";
$sel->get_eval( $js );                              // this works.

我的印象是,这不是正确的方法。这当然是 不可取,尤其是当函数调用其他函数时。

使用selenium提交表单的正确形式是什么?

1 个答案:

答案 0 :(得分:1)

有一种提交表单的方法(也应该触发onsubmit javascript)。

来自WWW::Selenium

$sel->submit($form_locator)

将提交指定的表格。 $ form_locator是您要提交的表单的元素定位器。