Прохожу курс по автоматизации на пайтон на степике, и вот какая ситуация:
import math
from selenium import webdriver
import time
link="http://suninjuly.github.io/find_link_text"
try:
browser = webdriver.Chrome()
browser.get(link)
link = browser.find_element_by_link_text(str(math.ceil(math.pow(math.pi, math.e)*10000)))
link.click()
input1 = browser.find_element_by_tag_name("input")
input1.send_keys("Ivan")
input2 = browser.find_element_by_name("last_name")
input2.send_keys("Petrov")
input3 = browser.find_element_by_class_name("form-control.city")
input3.send_keys("Smolensk")
input4 = browser.find_element_by_id("country")
input4.send_keys("Russia")
button = browser.find_element_by_css_selector("button.btn")
button.click()
finally:
time.sleep(10)
browser.quit()
при запуске через pycharm в новом проекте 1й раз подсвечивает проблемы с вебдрайвером селениум, устанавливаю, код запускается все работает, при повторном запуске скрипта поля не заполняются и выдает это:
Traceback (most recent call last):
File "C:\PycharmProjects\pythonProject\main.py", line 11, in <module>
input1 = browser.find_element_by_tag_name("input")
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 530, in find_element_by_tag_name
return self.find_element(by=By.TAG_NAME, value=name)
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"input"}
(Session info: chrome=86.0.4240.183)
Через консоль если запускать файл, то же самое.
При этом аналогичный код, только без математической функции из предыдущего урока с теми же самыми селекторами работает без проблем
Убрал try,finally и код стал запускаться ровно через раз...
Что то потыкал, поудалял посоздовал проекты код стал запускаться 2 из 3 раз, что происходит)?!
Я понимаю, что не вижу чего то фундаментального, объясните пожалуйста
import math
from selenium import webdriver
import time
link="http://suninjuly.github.io/find_link_text"
try:
browser = webdriver.Chrome()
browser.get(link)
link = browser.find_element_by_link_text(str(math.ceil(math.pow(math.pi, math.e)*10000)))
link.click()
input1 = browser.find_element_by_tag_name("input")
input1.send_keys("Ivan")
input2 = browser.find_element_by_name("last_name")
input2.send_keys("Petrov")
input3 = browser.find_element_by_class_name("form-control.city")
input3.send_keys("Smolensk")
input4 = browser.find_element_by_id("country")
input4.send_keys("Russia")
button = browser.find_element_by_css_selector("button.btn")
button.click()
finally:
time.sleep(10)
browser.quit()
при запуске через pycharm в новом проекте 1й раз подсвечивает проблемы с вебдрайвером селениум, устанавливаю, код запускается все работает, при повторном запуске скрипта поля не заполняются и выдает это:
Traceback (most recent call last):
File "C:\PycharmProjects\pythonProject\main.py", line 11, in <module>
input1 = browser.find_element_by_tag_name("input")
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 530, in find_element_by_tag_name
return self.find_element(by=By.TAG_NAME, value=name)
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 976, in find_element
return self.execute(Command.FIND_ELEMENT, {
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\PycharmProjects\pythonProject\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"input"}
(Session info: chrome=86.0.4240.183)
Через консоль если запускать файл, то же самое.
При этом аналогичный код, только без математической функции из предыдущего урока с теми же самыми селекторами работает без проблем
Убрал try,finally и код стал запускаться ровно через раз...
Что то потыкал, поудалял посоздовал проекты код стал запускаться 2 из 3 раз, что происходит)?!
Я понимаю, что не вижу чего то фундаментального, объясните пожалуйста
Вложения
Последнее редактирование: