我正在開展我的第一個硒項目,我碰到了一些路障。我有一個包含3個不同表格的網頁。我只想從這些表中的一箇中提取數據。我面臨的問題是使用引導程序來設置這些頁面的樣式,因此所有表格都共享相同的類別,並且它們都沒有可以專門搜索的標識。我可以通過在tr/td中搜索xpath來在不同的頁面上執行此操作,但由於多個表,因此不適用於此頁面。檢查網頁的源文件爲表我想拉數據從我得到類似如下:找到一個沒有ID的特定表
<div class="col-md-4">
<div class="panel panel-success">
<div class="panel-panel-heading>
<h3 class="panel-title">table title</h3>
</div>
<div class="table-responsive">
<table class="table-striped table-bordered">
<thead>...</thead>
<tbody>
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<td class="ng-binding">info1</td>
<td class="ng-binding">info2</td>
<td class="ng-binding">info3</td>
<td class="ng-binding">info4</td>
</tr>
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
<tr ng-repeat="element in main.elementService.elementTable" class="ng-scope">
</tbody>
</table>
</div>
因此,這導致我,我不知道我可以用它來選擇問題只有這張桌子。如果我搜索tr
或td
,我也會從頁面上的其他表中獲取數據。
我看到的這張表唯一的特點是<div class="col-md-4">.
我不知道它是否可能,但我的想法是做一些組合搜索去這個特定的div,然後去xpath tr/td從表格的每個單元格中提取數據,但我對硒是新手,我不知道如何去做這件事。我正在查看的文檔似乎沒有顯示如何將多個策略組合在一起,並且我在使用谷歌搜索時遇到了麻煩,所以我還沒有找到一個谷歌鏈接,它告訴我如何做到這一點。
我已經試過這樣的事情,但我不認爲我的語法是正確的
List<WebElement> TableElems = chrome.findElements(By.xpath("//div[@class='col-md-4']//tr/td"));
我也試過
List<WebElement> TableElems = chrome.findElements(By.xpath("//div[@class='col-md-4']" && "//tr/td"));
但&&
運營商這裏不允許使用。
如果任何人有任何想法讓我進入正確的方向,我將不勝感激。
FYI' 「COL-MD-4」'是'的'div'不'id' ...你應該有這個'xPath'嘗試...'名單 TableElems的class'屬性= chrome.findElements(By.xpath(「// div [@ class ='col-md-4']/descendant :: td」));' –
我編輯過,謝謝。 –