无法通过Selenium Python单击元素

时间:2018-11-09 20:08:17

标签: selenium selenium-webdriver xpath css-selectors webdriverwait

在Google航班页面上,我想单击对话框底部的向右箭头(增加天数)(附加图像)。第二次点击给我selenium.common.exceptions.TimeoutException错误。

这是我的代码:

url = 'https://www.google.fr/flights'
driver.get(url)
elem1 = driver.find_elements_by_xpath("//span[@class='gws-flights-form__date-content']")[0]
elem1.click()
a = wait.until(EC.visibility_of_element_located((By.XPATH, "//<span[@class='gws-flights-dialog__calendar-duration-flipper-increase']")))
a.click()

屏幕截图

enter image description here

1 个答案:

答案 0 :(得分:0)

要点击右箭头以增加对话框底部的天数,而不是使用visibility_of_element_located()方法,则需要使用 element_to_be_clickable() 方法,您可以使用以下任一解决方案:

  • CSS_SELECTOR

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.gws-flights-form__departure-input[data-flt-ve='departure_date'] div.gws-flights-form__next"))).click()
    
  • XPATH

    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@data-flt-ve='departure_date' and contains(@class,'gws-flights-form__departure-input')]//div[@class='gws-flights-form__next']"))).click()