我已经厌倦了使用 xpath 和 css 定位器,但是都无法单击。
任何人都可以帮助您了解为什么按钮元素与其他元素不同吗?
代码试用:
driver.findElement(By.xpath("//span[@id='a-autoid-2']")).click();
答案 0 :(得分:1)
该元素不是button
元素,而是与 DropDown 关联的<span>
标签,由于存在 class,看起来像button
属性a-button
,a-button-dropdown
和a-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属性。