簡體   English   中英

xPath適用於最后一頁,但不適用於第一頁-Selenium Java

[英]xPath is working for the last page but not the first - Selenium Java

我想使用Java中的Selenium從NCBI提取一些數據

問題是xPath /html/body/div[2]/div[1]/form/div[1]/div[5]/div/div[5]/div[" + i + "]/div[2]/p/a可以在頁面上獲得每篇文章的標題並單擊它們,它們適用於最后一頁,但不適用於第一頁,我不明白為什么。

driver.findElement(By.xpath("/html/body/div[2]/div[1]/form/div[1]/div[5]/div/div[5]/div[" + i + "]/div[2]/p/a")).click();

我懷疑這是一個不正確的錯誤,因為XPath的索引從1開始,而div[0]在那里不匹配任何內容。

但是,總的來說, 您的表達式非常脆弱,因為它是一個絕對表達式,其路徑從HTML樹的根部開始一直到每個父級都需要的元素。 任何較小的布局更改都會破壞它。

相反,我們可以認真簡化表達式:

//div[contains(@class, 'rslt')]/p/a

這將匹配每頁所有20個鏈接。

或者,如果您希望使用更簡潔的CSS選擇器:

driver.findElements(By.cssSelector(".rslt > p > a"));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM