簡體   English   中英

Watir:如何獲取具有相同類名的多個跨度的inner_html

[英]Watir: How do i get inner_html of multiple span, with same class name

我正在使用此代碼,以獲取span類的inner_html

weather = browser.span(:class => "_Xbe kno-fv").inner_html
puts weather

但是, inner_html存在多個具有相同類的inner_html 如何一次檢索所有這些?

我正在嘗試從此頁面獲取與天氣有關的信息

weather = browser.span(:class => "_Xbe kno-fv").text
puts weather

上面的代碼打印文本,但不一致。 我相信,因為同一類中存在多個元素,或者信息是動態的,因此呢? 我不確定。 有辦法嗎? 4

首次運行結果

Examples:
  | Search    |
  | Bangalore |  741 km²

第二次運行結果

Examples:
  | Search    |
  | Bangalore |  17°C, Wind E at 3 km/h, 69% Humidity

您要定位的元素包含在具有唯一數據屬性的<div> 我建議使用這種方法:

require 'watir'    
b = Watir::Browser.new :chrome
b.goto "https://www.google.com/?gfe_rd=cr&ei=w7-YWN75OsyAoAPK_oDYBQ#q=bangalore" 

puts b.div(:data_attrid => "kc:/location/citytown:current weather").text
#=> Weather: 59°F (15°C), Wind S at 2 mph (3 km/h), 83% Humidity

供參考-正如@JustinKo 演示的 watir可以使用數據屬性作為定位器,並進行一些細微調整。

旁注:對Google執行自動搜索可能違反了其服務條款,您可能會發現自己已被屏蔽。 您應該調查是否可以使用其許多API之一來收集此數據。

我不確定這是否是造成問題的原因,但是一個重要的問題是,當一個類定位器只能接受一個時,您正在使用多個類值:

不要這樣做: browser.span(:class => "_Xbe kno-fv")

這樣做: browser.span(css: "._Xbe.kno-fv")

暫無
暫無

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

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