Udemy Selenium Tutorial - такого элемента нет: невозможно найти элемент: {"method": "name", "selector": "btnk"} - PullRequest
0 голосов
/ 21 марта 2019

У меня ТОЧНО (характер, отступы), что есть у инструктора в уроке Удеми. Его тест работает нормально, но мой получает ошибки. Пожалуйста, ознакомьтесь ниже. Спасибо!

import unittest
from selenium import webdriver


class MyTestCase(unittest.TestCase):

    def setup(self):
        self.driver = webdriver.Chrome(executable_path="../Drivers/chromedriver.exe")
        self.driver.implicitly_wait(10)
        self.driver.maximize_window()

    def test_search(self):
        self.driver.get("http://www.google.com")
        self.driver.find_element_by_name("q").send_keys("Automation step by step")
        self.driver.find_element_by_name("btnk").click()
        x = self.driver.title
        print(x)
        self.assertEqual(x, "Automation step by step")

    def tearDown(self):
        self.driver.close()
        self.driver.quit()

Ошибка Traceback (последний вызов был последним): Файл "C: \ Python27 \ Lib \ unittest \ case.py", строка 329, в работе TestMethod ()

Файл "C: \ Users \ S-Iran \ PycharmProjects \ Demo \ Demo_1 \ utest1.py", строка 15, в test_search self.driver.find_element_by_name ( "btnk"). нажмите ()

Файл "C: \ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 496, в find_element_by_name вернуть self.find_element (by = By.NAME, значение = имя)

Файл "C: \ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 978, в find_element 'значение': значение}) ['значение']

Файл "C: \ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", строка 321, в файле execute self.error_handler.check_response (ответ)

Файл "C: \ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", строка 242, в check_response повысить исключение_класса (сообщение, экран, трассировка стека)

NoSuchElementException: Сообщение: такого элемента нет: Невозможно найти элемент: {"method": "name", "selector": "btnk"} (Информация о сеансе: chrome = 72.0.3626.121) (Информация о драйвере: chromedriver = 2.45.615291 (ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387), платформа = Windows NT 10.0.17134 x86_64)

1 Ответ

0 голосов
/ 21 марта 2019

Вместо нажатия на кнопку, которой нет при выполнении sendKeys, вы можете использовать element.submit()

Вместо этого.

self.driver.get("http://www.google.com")
  self.driver.find_element_by_name("q").send_keys("Automation step by step")
  self.driver.find_element_by_name("btnk").click()

Попробуйте это.

element=self.driver.find_element_by_name("q")
element.send_keys("Automation step by step")
element.submit()
...