当前位置: 首页 > 知识库问答 >
问题:

Selenium w/Python3-AttributeError:“str”对象没有属性“tag_name”

洪逸清
2023-03-14

Selenium/Python自动化新手。我在自动注册表单时被阻止。下拉列表是必需的元素,但我收到以下错误。。。

AttributeError:“str”对象没有属性“tag_name”

我把我的代码贴在下面,但是在网上找不到任何答案来解释为什么会这样。非常感谢任何/所有的帮助。

from selenium import webdriver
from selenium.webdriver.support.select import Select
teamElement = browser.find_element_by_id('id_team')
time.sleep(2)
sel = Select('teamElement')
sel.select_by_value("12")

错误来自sel=Select('teamElement')行。

 Traceback (most recent call last):
 File "/Users/jamesstott/PycharmProjects/basics/RunChromeTests.py", 
 line 40, in <module>
 sel = Select('teamElement')
 File "/Users/jamesstott/PycharmProjects/venv/lib/python3.6/site-packages/selenium/webdriver/support/select.py", line 36, in __init__
 if webelement.tag_name.lower() != "select":
 AttributeError: 'str' object has no attribute 'tag_name'

共有2个答案

金令秋
2023-03-14

根据API文档,Select()接受webelement作为参数,定义如下:

class selenium.webdriver.support.select.Select(webelement)

A check is made that the given element is, indeed, a SELECT tag. If it is not, then an UnexpectedTagNameException is thrown.

Args :  
webelement - element SELECT element to wrap

但是根据你的代码,你已经在单引号(即字符串)中传递了参数teamElement(最初是一个Web元素)。因此,您会看到错误。

将参数teamElement作为WebElement传递,如下所示:

sel = Select(teamElement)
艾善
2023-03-14

Select将WebElement类型作为参数,而不是字符串类型。更改以下行:

sel = Select('teamElement')

sel=Select(teamElement)

完整代码,

from selenium import webdriver
from selenium.webdriver.support.select import Select
teamElement = browser.find_element_by_id('id_team')
time.sleep(2)
sel = Select(teamElement)
sel.select_by_value("12")
 类似资料:
  • 问题内容: 为什么被认为是物体?返回列表中的第一项,但我不能追加到列表中的第一项。谢谢。 Edit01: @pyfunc:谢谢您的解释;现在我明白了。 我需要一个清单清单。因此“来自表单”应为列表。我做到了(如果这不是正确的方法,请更正): 问题答案: myList [1]是myList的元素,其类型是字符串。 myList [1]是str,您不能附加它。myList是一个列表,您应该已经附加了它

  • 问题内容: 有点困惑,因为我很肯定我以前曾经做过这项工作。 我创建了以下方法… 但是当我在导入的CSV文件上运行它时,会产生此错误: 尽管我可以看到这是文档中的一个属性: https://pandas.pydata.org/pandas- docs/stable/generation/pandas.Series.str.isnumeric.html?highlight=isnumeric#pand

  • 问题内容: 我正在尝试使用SQLAlchemy + Python将一个项目添加到我的数据库中,但始终出现错误。 我的database_setup.py: 在将sqlalchemy导入到终端后,我定义了一个要插入的项目: 并绘制一个会话以添加和提交: 当我提交时,我不断收到此错误: 我在我的公司表中添加了一个“ Jawbone”对象,我理解我的“ JawboneUP3”应该与之相关。该对象是通过我通

  • 问题内容: 我在python 3.3.4中遇到“解码”方法的问题。这是我的代码: 但是我无法解码此问题的代码: 你有什么想法?谢谢 问题答案: 一种 编码 字符串,另一种 解码 字节。 您应该从文件中读取字节并对其进行解码: 幸运的是,有一个编码参数使操作变得简单:

  • 这个问题又来了,请耐心听我说。 我在Ubuntu 16.04上,我试图用pip3安装Kmodes,但我遇到了这个错误。我尝试从零开始删除pip/pip3并重新安装,但没有解决问题。 我找到了以前关于同一问题的问题,但它没有像那样解决这个问题。 这个问题的解决方案是什么,我能做些什么来解决它?