【问题标题】:Selenium css selector for button text用于按钮文本的 Selenium css 选择器
【发布时间】:2016-10-05 18:36:52
【问题描述】:

HTML 如下所示:

<button class="btn btn-primary pull-right" type="submit">Sign in</button>

有多个按钮具有相同的类和类型值。但是,我只需要使用 CSS 选择器单击登录按钮。我尝试了以下方法,但都没有工作

@FindBy(how=How.CSS, using="button:contains('Sign in')") WebElement signInButton;

@FindBy(how=How.CSS, using=".btn btn-primary pull-right[text='Sign in']") WebElement signInButton;

也请指点我一些复杂的 CSS 选择器示例网站。

【问题讨论】:

    标签: java selenium-webdriver css-selectors


    【解决方案1】:

    您好,考虑到您的登录按钮在列表中的第一位(如果不是请根据您的要求更改),请按照下面的方式进行操作

    driver.findElements(By.cssSelector(".btn.btn-primary.pull-right")).get(0).click();
    

    【讨论】:

      【解决方案2】:

      CSS 选择器不支持文本评估。改用 XPath:

      @FindBy(how=How.XPATH, using="//button[text()='Sign in']")
      WebElement signInButton;
      

      【讨论】:

      • 请注意,如果文本不是按钮的直接子级,它将不匹配,例如&lt;button&gt;&lt;span&gt;Sign in&lt;/span&gt;&lt;/button&gt; 不匹配。相反,您可以使用 xpath //button[contains(., 'Sign in')]
      猜你喜欢
      • 2019-05-27
      • 2013-06-26
      • 2012-07-30
      • 2011-08-04
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多