如何通过SeleniumWebdriver和Java按照html点击弹出窗口内的按钮

问题描述 投票:0回答:3

我尝试点击像imagen这样的按钮。

不使用class或xpath

这是按钮enter image description here

这是从这个按钮检查。 enter image description here

这是试图点击按钮的代码:

driver.findElement(By.xpath("/html/body/div[10]/button")).click();

这是之前的xpath:

driver.findElement(By.xpath("/html/body/div[10]"));

请有人帮帮我!!!

java selenium selenium-webdriver xpath webdriverwait
3个回答
1
投票

页面中的每个简单更改都会导致代码停止运行,尝试始终使用类或ID并导航到它的兄弟节点/父节点。

你可以用两种方式做到这一点

1.使用CssSelector(右键单击DevTools中的Element - > Copy - > Copy Selector)

driver.FindElement(By.CssSelector("CopiedText")).Click()

2.使用XPath并通过它的父级访问它(示例为您的案例)

driver.FindElement(By.xpath("//div[@class='advertising-layer']/button")).Click()

0
投票

访问对话框中的按钮时遇到了类似的问题。我尝试使用XPath,id,它没有用,但它适用于CSS选择器。通过使用CSS选择器我使selenium webdriver单击一个按钮,从对话框的下拉列表中选择一个值,在文本框中键入一个值。我不确定为什么它适用于CSS选择器而不是XPath。如果有人对此有描述,我将不胜感激。

如果要获取特定元素的CSS选择器,请按照以下步骤操作

  • 在Firefox中打开应用程序
  • 打开Inspect元素,并在检查器(您看到HTML代码的位置)中
  • 选择页面中的元素,使用此按钮enter image description here查看检查器的特定代码
  • 右键单击代码中突出显示的部分并将鼠标悬停在副本上,您将找到CSS选择器

如果这对您有用,请告诉我。


0
投票

根据你共享的HTML来调用所需元素上的click(),你必须引入WebDriverWait,你可以使用以下解决方案:

new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("/div[@class='advertising-mask']//button"))).click();
© www.soinside.com 2019 - 2024. All rights reserved.