2012-03-13 45 views
0

我有一個使用JS提交表單一些HTML代碼:如何從selenium訪問javascript並提交表單?

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

在測試腳本我做的依據是什麼,我發現這裏的SO和 的WWW以下::硒文檔。

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

正常的表單提交工作正常,但它不能在硒代碼中工作。

如果我從js文件中舀出JS並在測試文件中創建一個字符串,它可以正常工作。

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

我的印象是,雖然這不是正確的方法。肯定是 不可取,特別是當函數調用其他函數時。

使用硒提交表單的正確形式是什麼?

回答

1

有一種提交表單的方法(它也應該激活onsubmit javascript)。

WWW::Selenium

$sel->submit($form_locator) 

將提交指定的形式。 $ form_locator是您要提交的表單的元素定位器。

+0

感謝您的回覆。這是正確的,事實上我正在做。我正在同時進行兩種不同的測試,並將它們混淆。在提交表單後,表單發生錯誤。我遇到的實際問題是這裏的一半,我想我會開始一個新的問題。 – jmcneirney 2012-03-14 17:47:24