我想要在http://www.redbus.in/Booking/SelectBus.aspx?fromCityId=124&fromCityName=Hyderabad&toCityId=462&toCityName=Mumbai&doj=30-May-2013&busType=Any&opId=0中获得所有旅行的名称,出现在标记中(它们是动态的,所以想要在数组中进行计数)
以下是html文件的某些部分
<div id="t1-results">
<table id="t1-list5" class="list5" cellspacing="0" cellpadding="0" style="margin-top:0px;">
<tbody id="t1-0">
<tr class="r1">
<td class="i1">Akbar Travels</td>
<td class="i2">
<td class="i3">
<td class="i4">
<td class="i5">
<td class="i6">
<td class="i7">
</tr>
<tr class="r2">
<tr class="r3">
</tbody>
<tbody class="hrblank">
<tbody id="t1-1" class="G">
<tr class="r1">
<td class="i1">Omer Travels</td>
<td class="i2">
<td class="i3">
<td class="i4">
<td class="i5">
<td class="i6">
<td class="i7">
</tr>
<tr class="r2">
<tr class="r3">
</tbody>
<tbody class="hrblank">
<tbody id="t1-2">
<tr class="r1">
<td class="i1">Sangita Travel Agency</td>
<td class="i2">
<td class="i3">
<td class="i4">
<td class="i5">
<td class="i6">
<td class="i7">
</tr>我已经尝试过
List<WebElement> linkElements = driver.findElements(By.tagName("//table[@cellspacing=\"0\"]"));
String[] linkTexts = new String[linkElements.size()];当我将got作为linkElements ArrayList<E> (id=82)进行调试时
`linkTexts String[0] (id=95)`不起作用。
我也试过了
List<WebElement> linkElements = driver.findElements(By.tagName("t1-results"));
String[] linkTexts = new String[linkElements.size()];有没有人能建议我怎么取名字。
发布于 2013-05-29 11:22:16
尝试使用CSS选择器,如下所示:
List<WebElement> linkElements = driver.findElements(By.cssSelector("table tr.r1 > td.i1")); 我刚刚做了一个快速测试,这段代码找到了所有63个匹配项(在撰写本文时):
driver.get("http://www.redbus.in/Booking/SelectBus.aspx?fromCityId=124&fromCityName=Hyderabad&toCityId=462&toCityName=Mumbai&doj=30-May-2013&busType=Any&opId=0");
//Find's the elements using a CSS selector: all td's (with class "i1"), directly inside a tr (with class r1) which are inside a table.
List<WebElement> linkElements = driver.findElements(By.cssSelector("table tr.r1 > td.i1"));
String[] linksText = new String[linkElements.size()];
int index = 0;
for(WebElement element : linkElements){
linksText[index++] = element.getText();
}发布于 2013-05-29 12:57:48
Xpath也是一个很好的选择,希望能对你有所帮助。
List<WebElement> linkElements = driver.findElements(By.Xpath("Your Xpath"));
String[] linksText = new String[linkElements.size()];
int index = 0;
for(WebElement element : linkElements){
linksText[index++] = element.getText();
}发布于 2014-04-08 16:02:36
尝试使用下面给出的CSS计数概念
int size=driver.findElements(By.cssSelector("#t1-results > #t1-list5 > tbody > tr.r1")).size();
for(int i=1;i<=size();i++)
{
String travelname = driver.findElement(By.cssSelector("#t1-results > #t1-list5 > tbody > tr.r1 > td.i1"))
}让我知道上面的脚本是否适合你。
https://stackoverflow.com/questions/16804839
复制相似问题