【问题标题】:Selenium AttributeError: type object 'By' has no attribute 'name' while fetching inputSelenium AttributeError:类型对象'By'在获取输入时没有属性'name'
【发布时间】:2022-01-17 23:04:24
【问题描述】:

不确定为什么会出现此错误,我已经问过与此问题相关的各种问题。由于某种原因,Webdriver 找不到我要查找的类型字段,给我 Attribute not found 错误以及 NoSuchElementException 错误。

错误信息:

Traceback (most recent call last):
  File "main.py", line 19, in <module>
    driver.find_element(By.name,"nickname").send_keys(username+Keys.ENTER)
AttributeError: type object 'By' has no attribute 'name'

代码行:

time.sleep(0.2)
driver.find_element(By.name,"nickname").send_keys(username+Keys.ENTER)

HTML:

<input name="nickname" type="text" placeholder="Nickname" maxlength="15" id="nickname" data-functional-selector="username-input" class="sc-gTgzIj eFnEAY" autocomplete="off" value="" aria-expanded="false">

【问题讨论】:

  • 我相信这行是区分大小写的By.name。使用By.NAME

标签: python selenium selenium-webdriver webdriver attributeerror


【解决方案1】:

根据The By implementation,支持的定位器策略集是:

  • CLASS_NAME = class name
  • CSS_SELECTOR = css selector
  • ID = id
  • LINK_TEXT = link text
  • NAME = name
  • PARTIAL_LINK_TEXT = partial link text
  • TAG_NAME = tag name
  • XPATH = xpath

因此,您必须将 By.name 更改为 By.NAME

实际上,您的代码行将是:

driver.find_element(By.NAME,"nickname").send_keys(username + Keys.ENTER)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2017-04-15
    • 1970-01-01
    • 2021-10-22
    • 2021-05-06
    相关资源
    最近更新 更多