Selenium - 标识没有ID或CSS类名的HTML元素

时间:2018-04-14 18:04:18

标签: html python-3.x selenium xpath web-scraping

我在Python 3中使用Selenium WebDriver来抓取this webpage / relevant HTML (Pastebin),并试图在&#34;离港航班&#34;中获取价格清单。 DIV。这个div没有ID,也没有CSS类名,所以我尝试通过XPath识别它。在Pastebin上,要查找我正在谈论的div,请按Ctrl + F <div class="">

这是我的代码:

outbound_fares = browser.find_elements_by_xpath("//*[@id='air-booking-product-0']/div[4]")
outbound_prices = outbound_fares.find_elements_by_class_name("currency_dollars")

第一行应标识div,第二行应获取该div中所有价格的列表。但是,我发现outbound_prices为空。我的猜测是第一行是错误的,但我不确定如何正确识别div。感谢。

2 个答案:

答案 0 :(得分:0)

您可以使用此cssSelector并从Depart航班获取所有价格:

cssSelector:

div[class='fare-button--hybrid'] span>span[class*='screen-reader'] 

试试这个cssSelector并告诉我状态。 如果您对此有任何疑虑,请与我们联系。

答案 1 :(得分:0)

你想要的元素没有ID,但我不知道你的意思是“没有CSS选择器”。另一个定位器可能更有效地找到它等等,但页面上的每个元素都可以通过CSS选择器找到。

您可以使用此CSS选择器返回页面上的所有价格。

span.fare-button--value-total

以下是一些阅读参考资料,以了解有关CSS选择器以及如何使用它们的更多信息。

https://www.w3.org/TR/selectors/#overview

https://saucelabs.com/resources/articles/selenium-tips-css-selectors

https://www.smashingmagazine.com/2009/08/taming-advanced-css-selectors/