![](/img/trans.png)
[英]Extract text from multiple xpath and assert text - Selenium/Java
[英]Extract Text from Span Element via XPath [Selenium]
我有以下HTML:
<div class="a-row a-spacing-small a-size-small">
<div class="a-row">
<a class="a-link-normal a-declarative g-visible-js reviewStarsPopoverLink" href="#" data-action="a-popover" data-a-popover="{"closeButton":"false","url":"/gp/customer-reviews/widgets/average-customer-review/popover/ref=wl_it_o_cm_cr_acr_img_hz?ie=UTF8&a=B05555JQP&contextId=wishi&link=1&seeall=1","name":"review-hist-pop.B075555RJQP","max-width":"700","position":"triggerBottom","data":{"itemId":"I2555555554GT","isGridViewInnerPopover":""},"header":"","cache":"true"}">
<i id="review_stars_I2J55555554GT" class="a-icon a-icon-star a-star-4-5">
<span class="a-icon-alt">4.5 out of 5 stars</span>
</i>
<i class="a-icon a-icon-popover"/>
</a>
<a class="a-link-normal g-visible-no-js" href="/product-reviews/B075555JQP/ref=wl_it_o_cm_cr_acr_txt_hz?ie=UTF8&colid=2K4U5555551D&coliid=I2J5555555T&showViewpoints=1">
<span class="a-letter-space"/>
<a id="review_count_I2J55555555GT" class="a-link-normal" href="/product-reviews/B05555555P/ref=wl_it_o_cm_cr_acr_txt_hz?ie=UTF8&colid=255555555D&coliid=I2555555GT&showViewpoints=1">(68)</a>
</div>
<div class="a-row">
<div class="a-row a-size-small itemAvailability">
<div class="a-row itemUsedAndNew">
</div>
我試圖通過以下XPath之一提取4.5 out of 5 stars
值:
.//*[contains(@id,'review_stars')]/span[@class='a-icon-alt']
.//*[contains(@id,'review_stars')]
但是,到目前為止,我嘗試過的所有操作都失敗了(返回空字符串)
有趣的是,所有這些XPath實際上都可以在Firebug
所以我不確定為什么它不能在我的程序中運行(我懷疑這與評級實際上在瀏覽器中不可見有關,除非您將鼠標懸停在特定元素上,但不確定是否/為什么/如何導致上述問題以及如何解決)
謝謝!
您未能將圖像包括在錨點和跨度之間。 跨度在圖像內部,而不是錨的同級。
嘗試:
.//*[contains(@id,'review_stars')]/i/span[@class='a-icon-alt']
要通過XPath
提取4.5 out of 5 stars
值4.5 out of 5 stars
可以使用:
//a[@class='a-link-normal a-declarative g-visible-js reviewStarsPopoverLink']/i[starts-with(@id,'review_stars_') and @class='a-icon a-icon-star a-star-4-5']/span[@class='a-icon-alt']
如您所述, This does not work either. I just tried it.
This does not work either. I just tried it.
您一定錯過了我提供的xpath
的一部分。 我的答案是一個可靠的答案。 請參閱下面的快照:
注意 :盡管您的問題與
xpath
有關,但是您已經針對getText()方法和getAttribute(“ innerHTML”)方法提取了答案。 我的答案將如何同時與getText()和getAttribute(“ innerHTML”)方法一起使用。
盡管我不完全理解為什么以前的代碼不起作用,但我將嘗試回答自己的問題。 如果有人可以為我提供深入的解釋,我將接受他們的答案作為最終答案。
現在這對我有效:
而不是調用element.getText();
調用element.getAttribute("innerHTML");
這將返回正確的結果,但是我想了解為什么getText()在這種情況下不起作用。 同樣,如果有人可以提供一個可以正常工作的XPath或可以對所有這些提供解釋,我將接受它作為最終答案。
謝謝
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.