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

如何修复选择输入字段[重复]时出现的“不允许复合类名”异常

沃侯林
2023-03-14

我是selenium的新手,想用它来测试登录页面。我有下面的文本字段,我想在其中插入用户名。

<div class="WODM WNDM" data-automation-id="userName">
<div class="gwt-Label WBEM">Email Address</div><input type="text" 
class="gwt-TextBox WAEM" autocapitalize="none" autocorrect="off" 
autocomplete="off" aria-label="Email Address" dir="ltr">
</div>

我写了下面的代码,这是不起作用的:

emailElem = driver.find_element_by_class_name('gwt-Label WBEM')
emailElem.send_keys('some_email')

提前感谢!

共有2个答案

丰胤运
2023-03-14

您可以像下面这样使用xpath

driver.find_element_by_xpath("//input[@type='text' and @class='gwt-TextBox WAEM']")
越学博
2023-03-14

我能看到三件事:

    < li >应该在发送密钥之前调用< code>clear()。 < li >您已经输入了两个类,就像您在HTML中看到的那样-我很确定selenium在调用中只需要一个类,所以选择得很明智(请确认这一点-如果不太麻烦的话,最好能确定)。 < li >我发现您尝试选择的类< code>gwt-Label和< code>WBEM是这是一个< code >

因此,考虑到这三点,您应该将代码更改为:

emailElem = driver.find_element_by_class_name('gwt-TextBox')
emailElem.clear()
emailElem.send_keys('some_email')
 类似资料:
  • 我试图获取具有特定类名的所有元素: 然而我得到的错误是: 我知道类名中不允许有空格,但是我该怎么办呢? 谢啦

  • 我要找到下面的按钮。它是一个蚂蚁控制器。 它位于数据输入表单中,它的XPath变化取决于我们在表单顶部所做的选择。所以XPath不能使用。然后我试了CSS选择器,它也不支持。 最后,我使用类名作为位置策略,并使用移动到元素。 代码成功执行到以下行。 单击部分我们不起作用并抛出元素是不可见的。但元素是可见的

  • 我试图得到以下每个元素使用 inspect元素的输出如下。 但是它失败了,并抛出下面的错误。 另外,我如何遍历每个类?每个类都包含子部分,我想在进入下一个类之前进一步单独处理这些子部分。

  • 我尝试单击选择菜单并选择元素: 我的方式: 结果,我得到了这个异常: 组织.openqa.硒.无效选择器例外: 无效选择器: 不允许复合类名

  • 我正在测试Python Selenium,我有这样的代码: 在运行过程中,我有这个错误: 它一直运行到“videos = driver .....”这一行你能帮我固定我这边吗?

  • 我得到以下错误: "不允许使用复合类名" 尝试访问Web元素时,元素的类名之间有空格。Web元素的页面源如下所示。 我试图通过CSS路径找到元素,如下所示。但是这个元素是不可搜索的。 这是在链接中给出的解决方法,但仍然没有成功。你的帮助将不胜感激。