我在网页上有这样的内容。
Appname Description Price Part Number Validity
App1 some desc1 25 JH32 30
App2 some desc2 250 PB36 180
App2 some desc3 20 QL76 10
App3 some desc4 50 KQ3J 30
我的应用程序就像启动应用程序后,用户将输入一个应用程序名称,其中selenium将在此站点中搜索该特定的appname。除了这一步,我想要的是:
无论我搜索什么appname,selenium都必须检索与该字段对应的值,例如selenium应该检索价格,有效性和部件号字段的值。我尝试使用selenium来使用classname,tagname,id等属性来检索值。但是所有字段对于每个字段都具有相同的属性,这使得selenium难以选择字段。
我唯一能找到不同的是innertext,我不能在这里使用,因为我无法预测用户在我的应用程序开始时作为appname在appbox中提供的内容。
我的示例html代码,我在网站上点击字段(价格)后得到的代码。我为此使用了萤火虫。我正在使用firefox浏览器进行selenium ..
<td height="100%" class="ms-vb-title"><table height="100%" cellspacing="0" surl="" uis="512" cid="0x0100DFF86ACBE51BE549AA56639FCC32D7E0" ctype="Item" ms="0" csrc="" hcd="" couid="" otype="0" icon="icgen.gif||" ext="" type="" perm="0x1b03c4312ef" dref="sites/SoftwareDev/IAG/IAS/Lists/Unify Parts" url="/sites/SoftwareDev/IAG/IAS/Lists/Unify%20Parts/27_.000" id="27" ctxname="ctx1" onmouseover="OnItem(this)" class="ms-unselectedtitle"><tbody><tr><td width="100%" class="ms-vb"><a target="_self" onclick="GoToLink(this);return false;" href="/sites/SoftwareDev/IAG/IAS/Lists/Unify%20Parts/DispForm.aspx?ID=27" onfocus="OnLink(this)">MindMeister - 251-500 Pupil License<img height="1" border="0" width="1" alt="Use SHIFT+ENTER to open the menu (new window)." class="ms-hidden" src="/_layouts/images/blank.gif"></a></td><td><img width="13" alt="" style="visibility:hidden" src="/_layouts/images/blank.gif"></td></tr></tbody></table></td>
我怎样才能实现我的目标?任何评论都会非常感激......
答案 0 :(得分:0)
如果没有看到HTML或您的代码,我会假设您提供的表格是以有序<table><tr><td>...</td><td>...</td></tr></table>
形式设置的。在此假设下,您可以使用已经使用的代码来查找appname,然后使用webdriver的Xpath / Jquery(基于您正在使用的浏览器)定位能力来查找{{1}的相应数据值你找到appname元素的<td>
索引。
如果元素为“selected”,则只返回标签值并将其保存在代码中的变量中。
答案 1 :(得分:0)
如果您只需要继续使用应用名称,那么您需要这样做:
td
)包含应用程序名称的WebElement。以下是一些简化的webdriver代码,原则上说明它是如何工作的:
WebElement td_appname = driver.findElement.ByLinkText("MindMeister - 251-500 Pupil License");
WebElement td_appdescription = td_appname.findElement.Byxpath("./../td[2]");
String appdescription = td_appdescription.getText();
这里,关键位是第三行代码上的xpath。这只适用于一个非常简单的表结构(table / tbody / tr / td);但是你的更复杂,所以你需要为你的网站结构找出合适的相对xpath。我建议使用一个好的浏览器开发工具(例如在firefox上,使用firebug和firepath)来仔细查看DOM树,并找出从一个单元格到下一个单元格所需的xpath类型。