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之后,它也无法正常工作。
答案 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']")))