【问题标题】:Udemy Selenium Tutorial - no such element: Unable to locate element: {"method":"name","selector":"btnk"}Udemy Selenium 教程 - 没有这样的元素:无法找到元素:{"method":"name","selector":"btnk"}
【发布时间】:2019-08-11 18:35:38
【问题描述】:

我完全有(字符,间距缩进)教师在 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 行 测试方法()

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

文件“C:\Users\S-Iran\PycharmProjects\Demo\venv\lib\site-packages\selenium\webdriver\remote\webdriver.py”,第 496 行,在 find_element_by_name 中 return 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 '值': 值})['值']

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

文件“C:\Users\S-Iran\PycharmProjects\Demo\venv\lib\site-packages\selenium\webdriver\remote\errorhandler.py”,第 242 行,在 check_response raise exception_class(message, screen, stacktrace)

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

【问题讨论】:

  • 你的“setup”函数应该被称为“setUp”以便首先被调用
  • 非常感谢!您是否从错误中注意到了这一点?或者只是阅读方法?现在我有不同的错误。我检查了谷歌上的元素,它们仍然有正确的名称,所以我不确定为什么找不到它们。 NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“name”,“selector”:“btnk”}
  • 请更新您的问题
  • 问题已更新。
  • 在您的 html 中没有名为“btnk”的元素,它非常简单

标签: python unit-testing selenium attributeerror


【解决方案1】:

您可以使用element.submit(),而不是单击sendKeys 时不存在的按钮

而不是这个。

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

【讨论】:

  • 谢谢。这是首选方法吗?
  • 是的。您能否通过单击接受我的代码消息来接受我的回答。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-09
  • 1970-01-01
  • 2020-09-30
  • 2020-03-18
  • 2021-12-20
  • 2021-05-19
  • 1970-01-01
相关资源
最近更新 更多