python 中的 Selenium webdriver find_element_by_id() 方法使用 phantomjs 抛出错误
Selenium webdriver find_element_by_id() method in python throws error with phantomjs
python 上基于 selenium webdriver 的网络测试用例在使用 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 之后它也无法正常工作。
根据您在评论中提供并随后在问题中更新的 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']")))
python 上基于 selenium webdriver 的网络测试用例在使用 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 之后它也无法正常工作。
根据您在评论中提供并随后在问题中更新的 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']")))