如何点击按钮

时间:2019-05-02 15:13:35

标签: java selenium selenium-webdriver xpath css-selectors

我已经厌倦了使用 xpath css 定位器,但是都无法单击。

任何人都可以帮助您了解为什么按钮元素与其他元素不同吗?

Here is the URL

代码试用:

driver.findElement(By.xpath("//span[@id='a-autoid-2']")).click();

3 个答案:

答案 0 :(得分:1)

该元素不是button元素,而是与 DropDown 关联的<span>标签,由于存在 class,看起来像button 属性a-buttona-button-dropdowna-button-small

要点击所需的元素,可以使用以下Locator Strategies之一:

  • cssSelector

    driver.findElement(By.cssSelector("span.a-button.a-button-dropdown.a-button-small span.a-dropdown-prompt")).click();
    
  • xpath

    driver.findElement(By.xpath("//span[@class='a-button a-button-dropdown a-button-small']//span[@class='a-dropdown-label']")).click();
    

答案 1 :(得分:0)

改用下面的xpath,它具有按钮角色而不是父范围。

//span[@id='a-autoid-2']//span[@role='button']

答案 2 :(得分:0)

如果您要修改数量(数量), 试试下面的CSS选择器

driver.FindElement(By.CssSelector("#a-autoid-2 span[data-action='a-dropdown-button']")).Click();

该下拉按钮的属性为[aria-pressed =“ false”]。默认为“ false”,一旦单击,属性将更改为“ true”。现在,由于更改了上述定位器的属性,因此WebDriver找不到“数量”下拉列表。单击代码后尝试使用流畅的等待时间来获取更新的DOM属性。