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



我正在使用Python 3中的Selenium WebDriver来抓取此网页/相关HTML(Pastebin(,并试图在"出发航班"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

。 谢谢。

您可以使用此 cssSelector 并获取出发航班的所有价格:

css选择器 :

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

试试这个cssSelector,让我知道状态。如果您对此有任何疑问,请告诉我。

你想要的元素没有 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/

最新更新