我尝试点击像imagen这样的按钮。
不使用class或xpath
这是试图点击按钮的代码:
driver.findElement(By.xpath("/html/body/div[10]/button")).click();
这是之前的xpath:
driver.findElement(By.xpath("/html/body/div[10]"));
请有人帮帮我!!!
页面中的每个简单更改都会导致代码停止运行,尝试始终使用类或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()
访问对话框中的按钮时遇到了类似的问题。我尝试使用XPath,id,它没有用,但它适用于CSS选择器。通过使用CSS选择器我使selenium webdriver单击一个按钮,从对话框的下拉列表中选择一个值,在文本框中键入一个值。我不确定为什么它适用于CSS选择器而不是XPath。如果有人对此有描述,我将不胜感激。
如果要获取特定元素的CSS选择器,请按照以下步骤操作
如果这对您有用,请告诉我。
根据你共享的HTML来调用所需元素上的click()
,你必须引入WebDriverWait,你可以使用以下解决方案:
new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("/div[@class='advertising-mask']//button"))).click();