我在firefox中运行了我的selenium自动化测试脚本,效果很好。 现在我想在IE中运行脚本,它似乎在在GUI中定位元素的步骤失败。似乎selenium无法在GUI中找到元素,而firefox可以轻松找到它。 / p>
String servicenameidtext = "//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td";
Selenium.getText(servicenameidtext );
实际上,脚本是由selenium-IDE记录的,我检查了Xpath,我认为该元素没有问题。 但是为什么硒在IE中的这一步失败了?
谁能告诉我原因?在IE中运行测试时如何解决问题? 非常感谢!
我想通过
从GUI找到元素“alarmlm”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>
感谢所有人,问题解决了。原因是:firefox和IE中的html不一样。奇怪。
答案 0 :(得分:2)
也许,由于默认的命名空间?
错误说明在您未向我们展示的数据中 - 如何提供(x)Html文本?
<强>更新强>:
现在OP提供了源(x)Html文档。提供的XPath表达式:
//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td
不会选择所需的元素只是因为td
永远不是另一个td
的孩子,,但这正是此XPath表达式所寻求的 - 它结束于:
td[1]/td
答案 1 :(得分:1)
你可以尝试通过将/ text()附加到xpath表达式来检查IE中文本值是什么。也许它找到空字符串?
String servicenameidtext = "//table[@id='release_hostsProcesses_list']/tbody/tr[2]/td[1]/td/text()";
alert("found:" + servicenameidtext);
我的两分钱,
答案 2 :(得分:1)
尝试在id字段中使用所有小写字符:
String servicenameidtext = "//table[@id='release_hostsprocesses_list']/tbody/tr[2]/td[1]/td";
Selenium.getText(servicenameidtext );
应该同时适用于FF和IE
答案 3 :(得分:0)
在这个案例中,我们可以做一件事
检查Internet Explorer的元素IE Developer Tools可用于FireFox Firebug
我们可以比较两个Inspections从IE Developer Tools获取对象的XPath / CSS。
使用和检查它是否在IE和FF中都有效
如果它工作正常,否则我们可以根据浏览器使用相应的XPath。