Selenium AttributeError: type object 'By' has no attribute 'name' while fetching input

Selenium AttributeError: type object 'By' has no attribute 'name' while fetching input

不确定为什么会出现此错误,我已经问过与此问题相关的各种问题。 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">

根据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)