我在firefox中运行了我的selenium自动化测试脚本,效果很好 . 现在我想在IE中运行脚本,它似乎在 locating an element in GUI. 的步骤失败了 . 似乎selenium无法在GUI中找到元素,而firefox可以轻松找到它 .
String servicenameidtext = "//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td";
Selenium.getText(servicenameidtext );
事实上,脚本是由selenium-IDE记录的,我检查了Xpath,我认为该元素没有问题 . But why selenium failed on this step in IE?
谁能告诉我原因?如何在IE中运行测试时解决问题?非常感谢!
I want to locate the element "alarmlm" from the GUI by
String servicenameidtext =“// table [@ id ='release_hostsProcesses_list'] / tbody / tr [2] / td [1] / td”;
P.S: The html of the part:
<tbody><tr class="form-title"><td colspan="3"><a href="javascript:void(0);" onclick="javascript:ChangeVisibility( 'release_hostsSoftwareInformation' ); return false;"><img src="img/minus.png" title="-" alt="-"></a> <b>Software Information</b>
</td></tr><tr><td><div id="release_hostsSoftwareInformation_internal">
<table id="release_hostsProcesses_list" border="0" width="100%" class="Processes_list"><tbody>
<tr class="title-column"><td><b>Service Name</b></td><td><b>Summary</b></td><td><b>Description</b></td><td><b> Version </b></td><td><b>Release</b></td><td colspan="2"><b>Installation Date</b></td></tr><tr><td>alarmlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>annlabclient</td><td>Annlab Client</td><td>Annlab Client</td><td>5.0.13</td><td>23</td><td>Wed 10 Nov 2010 04:23:57 AM CST</td></tr><tr><td>annlabserver</td><td>Annlab Server</td><td>Annlab Server</td><td>5.0.13</td><td>23</td><td>Wed 10 Nov 2010 04:23:57 AM CST</td></tr><tr><td>recoveryalarmlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>recoverystatlm</td><td>mpm</td><td>MultiPlatformManagement tools</td><td>4.0.12</td><td>5</td><td>Wed 10 Nov 2010 04:23:52 AM CST</td></tr><tr><td>mrfctrl</td><td>MRF Controller</td><td>mrfctrl - including sipproxySubsystem</td><td>1.4.0.5</td><td>1</td><td>Wed 10 Nov 2010 04:24:00 AM CST</td></tr></tbody></table></div></td></tr></tbody>
Thanks to all, the problem is solved. The cause is: the html in firefox and IE are not the same. Strange.
4 回答
在这个案例中,我们可以做一件事
要检查Internet Explorer的元素,可以使用IE开发人员工具和FireFox Firebug
我们可以比较两个Inspections从IE Developer Tools获取对象的XPath / CSS .
使用和检查它是否在IE和FF中都有效
如果它工作正常否则有条件我们可以使用相应的XPath根据浏览器 .
也许,由于默认命名空间?
错误解释是在您没有向我们展示的数据中 - 如何提供(x)Html文本?
UPDATE :
现在OP提供了源(x)Html文档 . 提供的XPath表达式:
doesn't select the required element simply because a td is never a child of another td, 但这正是这个XPath表达式正在寻找的东西 - 它的结尾是:
您可以尝试通过将/ text()附加到xpath表达式来检查IE中的文本值是什么 . 也许它找到空字符串?
我的两分钱,
尝试在id字段中使用所有小写字符:
应该在FF和IE中都有效