【问题标题】:How to write locator for this element如何为此元素编写定位器
【发布时间】:2019-09-05 06:10:09
【问题描述】:

我正在运行自动化 UI 测试并想验证此按钮是否已禁用,但我不确定如何为此元素创建定位器:

元素来源

<a data-hook="loginbutton" 
   class="mb-button mb-button--wider mb-button--primary 
          mb-button--disabled mb-button" tabindex="0">Login</a>

我之前为按钮使用了data-hook 属性,但即使启用或禁用该按钮也只有一个数据挂钩。

【问题讨论】:

  • 使用您遇到的相关 HTML、代码试验和错误更新问题。
  • 请分享该元素的完整 DOM
  • css定位器a[data-hook="loginbutton"]

标签: python-2.7 selenium pycharm


【解决方案1】:

CSS 选择器是我认为的最佳选择 您可以使用:

find_element_by_css_selector(a[".mb-button.mb-button--wider.mb-button--primary.mb-button--disabled.mb-button"])

或者这个:

find_element_by_css_selector(a[data-hook="loginbutton"])

第一个基本上是使用类,所以它可以更短,取决于元素的类在网络中的独特程度

【讨论】:

  • 感谢 RegCent。我会尝试第一个建议,第二个建议将不起作用,因为无论按钮是启用还是禁用都使用相同的数据挂钩
  • 好的,如果可行,请将其标记为答案,否则,请告诉我,我会尝试考虑其他内容
【解决方案2】:

这就是我最终做的 -

    def login_button_disabled(self):
        self.login_button_disabled = self.browser.find_element_by_class_name("mb-button--disabled")
        if self.login_button_disabled.is_displayed():
            print("Login Button Disabled")
        else:
            print("Login Button Enabled")

【讨论】:

    【解决方案3】:

    您可以将此 Xpath 用于上述元素。 xpath = //a[包含(text(),'Login')]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-27
      • 1970-01-01
      • 1970-01-01
      • 2014-12-20
      • 1970-01-01
      • 2022-10-12
      • 2019-10-01
      相关资源
      最近更新 更多