Udemy Selenium教程-没有这样的元素:无法找到元素:{“ method”:“ name”,“ selector”:“ btnk”}

时间:2019-03-20 23:03:06

标签: python unit-testing selenium attributeerror

我完全具有(在Udemy教程中)教师所具有的(字符,空格缩进)。他的测试运行正常,但是我的测试出现错误。请在下面查看。谢谢!

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()

错误 追溯(最近一次通话):   运行中的文件“ C:\ Python27 \ Lib \ unittest \ case.py”,第329行     testMethod()

在test_search中的文件“ C:\ Users \ S-Iran \ PycharmProjects \ Demo \ Demo_1 \ utest1.py”,第15行     self.driver.find_element_by_name(“ btnk”)。click()

find_element_by_name中的第496行“ C:\ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”     返回self.find_element(by = By.NAME,value = name)

文件“ C:\ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”,行978,在find_element中     'value':value})['value']

在执行的文件“ C:\ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py”中执行     self.error_handler.check_response(response)

文件“ C:\ Users \ S-Iran \ PycharmProjects \ Demo \ venv \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py”,行242,在check_response中     引发exception_class(消息,屏幕,堆栈跟踪)

NoSuchElementException:消息:没有这样的元素:无法找到元素:{“ method”:“ name”,“ selector”:“ btnk”}   (会议信息:chrome = 72.0.3626.121)   (驱动程序信息:chromedriver = 2.45.615291(ec3682e3c9061c10f26ea9e5cdcf3c53f3f74387),platform = Windows NT 10.0.17134 x86_64)

1 个答案:

答案 0 :(得分:0)

您可以使用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()