如何让硒等待

时间:2020-04-27 12:27:23

标签: python selenium

    from selenium import webdriver
    from selenium.webdriver.common.by import By
    from selenium.webdriver.common.keys import Keys
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support.expected_conditions import presence_of_element_located

    login = 'somemail@gmail.com'
    password = 'anypass'
    mail = 'somemail2.ekb@gmail.com'
    text = 'Hello world!'

    driver= webdriver.Firefox()
    wait = WebDriverWait(driver, 20)
    driver.get("https://mail.google.com/")
    assert 'Gmail' in driver.title
    driver.find_element(By.NAME, 'identifier').send_keys(login + Keys.RETURN)

    # time.sleep(5)

    result = wait.until(presence_of_element_located((By.NAME, "password")))
    elem = driver.find_element(By.NAME, "password")
    elem.send_keys(password + Keys.RETURN)

该程序具有以下错误:

selenium.common.exceptions.ElementNotInteractableException: Message: Element <input class="whsOnd zHQkBf" name="password" type="password"> is not reachable by keyboard

嗨,这是问题所在。没有时间。sleep(5)会使我受惊(“无法通过键盘到达”或“无法滚动或类似移动”)。

1 个答案:

答案 0 :(得分:0)

请尝试将presence_of_element_located行替换为element_to_be_clickable,因为Selenium似乎已经加载了该元素,但仍无法选择,可能是由于Google邮件播放的滑动动画所致。