Selenium webdriver метод find_element_by_id () в python выдает ошибку с phantomjs - PullRequest
0 голосов
/ 03 июля 2018

веб-тестовых сценариев на Python, основанных на селеновом веб-драйвере, возникают проблемы с использованием 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 голосов
/ 03 июля 2018

Согласно 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']")))
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...