首页 > 解决方案 > python 中的 Selenium webdriver find_element_by_id() 方法使用 phantomjs 引发错误

问题描述

基于 selenium webdriver 的 python 上的 web 测试用例在使用 phantomjs 时存在问题。它在driver.find_element_by_id("username").

相关HTML:

<input class="form-control" name="username" id="username" type="text" placeholder="Username">

我听说是时间等待问题,我在之前和之后尝试过,time.sleep(10)但仍然没有进展:

time.sleep(10)
user = self.driver.find_element_by_id("username")
time.sleep(10)

可以请任何人知道这一点,例如使用 chromrdriver 的运行案例正在运行,但使用 phantomjs 即使在测试用例中访问 phantomjs.exe 后它也无法正常工作。

标签: python-3.xseleniumxpathcss-selectorsphantomjs

解决方案


根据您在评论中提供并随后在问题中更新的 HTML,您可以删除所有实例并用WebDriverWaittime.sleep()替换它们,如下所示:

  • CSS_SELECTOR

    user = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input.form-control#username")))
    
  • XPATH

    user = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@class='form-control' and @id='username']")))
    

推荐阅读