浏览python selenium

时间:2017-07-17 20:22:46

标签: python-3.x selenium-webdriver

这是skyscanner的网站。选择航班后,我想点击每个“选择按钮”(价格为687美元),然后转到下一页。在下一页,我想点击向下箭头进行出境航班。然后我再次想要点击选择按钮($ 715)和再次出站航班箭头。因此,它可以在所有可能的页面上进行所有可能的搜索循环。

enter image description here

这是下一页的向下箭头

enter image description here

这是我到目前为止编写的代码 :

driver = webdriver.Chrome( )

driver.get('https://www.skyscanner.com/transport/flights/nyca/lax/170717/170718/airfares-from-new-york-to-los-angeles-international-in-july-2017.html?adults=1&children=0&adultsv2=1&childrenv2=&infants=0&cabinclass=economy&rtn=1&preferdirects=false&outboundaltsenabled=false&inboundaltsenabled=false&ref=home#results')

while True:
        items=driver.find_element_by_class_name("fss-bpk-button expand-cba select-action")
        for i, item in enumerate(items):
            driver.find_element_by_class_name("fss-bpk-button expand-cba select-action").click()
              for j, item2 in item
                  driver.find_element_by_class_name("leg-summary-container clearfix").click()

我也试过以下但没有效果:

 links = [link.get_attribute('href') for link in driver.find_element_by_class_name("fss-bpk-button expand-cba select-action")]
    for link in links:
        driver.get(link)

1 个答案:

答案 0 :(得分:0)

您的第二个代码应该在一些更改后起作用:

links = [link.get_attribute('href') for link in driver.find_elements_by_css_selector("a.fss-bpk-button.expand-cba.select-action")]

请注意

  1. 要获取元素列表,请使用find_elements_...()代替find_element_...()
  2. 不允许使用复合类名称,因此如果要使用多个类名来查找所需元素,则可以使用CSS选择器或XPath进行搜索,而不是按class名称搜索< / LI>