如何使用Selenium IDE自动点击此锚标记(当然是在Mozilla Firefox中)?我尝试了两种不同的方法,但都没有。这是在弹出窗口中是否重要?我可以让其他控件工作。
HTML:
&lt; a href =“javascript:__ doPostBack('EditTestResult $ EditOverallTestResults $ BucketMove $ LBuSelect','')”class =“standard-text”id =“EditTestResult_EditOverallTestResults_BucketMove_LBuSelect”&gt; - &gt;&lt; / a&gt; < / p>
无效的Selenium代码:
命令:clickAndWait
目标:id = EditTestResult_EditOverallTestResults_BucketMove_LBuSelect
价值:
无效的Selenium代码:
命令:clickAndWait
目标:link = - &gt;
价值:
==========================
所以我得到了关于这个的更多信息。此命令之前的命令如下:
命令:addSelection
目标:id = idofmultiselect
值:option1
当我在上面的“clickAndWait”命令中启动脚本(按下“s”键)时,它可以正常工作(对于这两个版本)。 当IDE在clickAndWait命令上获得STUCK时,我就有了这个多选项。我尝试过使用“addSelectionAndWait”并且没有修复它。
==========================
我不能把实际的动态代码放进去,所以这就足够了。
<html>
<body>
<form>
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td><span id="EditTestResult_EditOverallTestResults_BucketMove_LblUnselectedBox">Does Not Have Results...</span><br>
<select size="4" name="EditTestResult$EditOverallTestResults$BucketMove$LBoUnselected" multiple="multiple" id="EditTestResult_EditOverallTestResults_BucketMove_LBoUnselected" style="height:100px;width:220px;">
<option value="214">Cocaine/Metabolite - Positive</option>
<option value="213">Opiate - Positive</option>
<option value="37">Phencyclidine - Positive</option>
<option value="58">THC Metabolite - Positive</option>
</select></td>
<td vAlign="middle">
<table>
<tr>
<td><a id="EditTestResult_EditOverallTestResults_BucketMove_LBuSelect" class="standard-text" href="javascript:__doPostBack('EditTestResult$EditOverallTestResults$BucketMove$LBuSelect','')">-></a></td>
</tr>
<tr>
<td><a id="EditTestResult_EditOverallTestResults_BucketMove_LBuUnselect" class="standard-text" href="javascript:__doPostBack('EditTestResult$EditOverallTestResults$BucketMove$LBuUnselect','')"><-</a></td>
</tr>
</table>
</td>
<td><span id="EditTestResult_EditOverallTestResults_BucketMove_LblSelectedBox">Has Results...</span><br>
<select size="4" name="EditTestResult$EditOverallTestResults$BucketMove$LBoSelected" multiple="multiple" id="EditTestResult_EditOverallTestResults_BucketMove_LBoSelected" style="height:100px;width:220px;">
<option value="206">Amphetamine - Positive</option>
</select></td>
</tr>
</table>
<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['Form1'];
if (!theForm) {
theForm = document.Form1;
}
function __doPostBack(eventTarget, eventArgument) {
alert("doing postback");
if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
theForm.__EVENTTARGET.value = eventTarget;
theForm.__EVENTARGUMENT.value = eventArgument;
theForm.submit();
}
}
//]]>
</script>
</form>
</body>
</html>
====================
发现ASP.NET验证可能导致clickAndWait命令隐式失败。在Selenium中运行脚本时,Selenium IDE中的验证消息与手动使用Web浏览器时的验证消息不同。因此看起来命令可能会失败,但实际上,表单无法提交,并且您无法在手动单击鼠标按钮时看到浏览器中的红色验证消息(而不是clickAndWait命令执行此操作)。这解决了我的一大堆问题,但不是这个问题。我还在寻找答案。
答案 0 :(得分:5)
这里的问题可能是同步问题。如果这是一个AJAX,它似乎是,那么所有的AndWait方法对你都没用。
尝试使用Click后跟WaitForElementPresent或类似的东西。
AndWait仅在浏览器中存在完整的物理页面加载时才会起作用。这看起来像是一个更大的形式的一部分,如果根据您提供的代码发生这种情况,我会感到惊讶。
另见http://saucelabs.com/blog/index.php/2011/02/advanced-selenium-synchronization-with-latches/