python中的Selenium Webdriver find_element_by_id()方法使用phantomjs引发错误

时间:2018-07-03 14:06:34

标签: python-3.x selenium xpath css-selectors phantomjs

基于硒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之后,它也无法正常工作。

1 个答案:

答案 0 :(得分:1)

根据您在注释中提供的HTML,然后在问题中进行更新,您可以删除所有time.sleep()实例,并用 WebDriverWait 替换它们,如下所示:

  • 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']")))