我试图弄清楚如何将硒与 div类一起使用:
<div class="main-button ol-has-tooltip jse-info">
尝试一切以查找此元素并单击它:
driver.findElement(By.xpath("/html/body/div[1]/div[3]/div[2]/div[1]/div[2]")).click();
和:
driver.findElement(By.cssSelector("main-button ol-has-tooltip jse-info")).click();
但是对我没有用,我该如何处理? 谢谢。
答案 0 :(得分:0)
欢迎来到。
如果您尝试单击具有main-button ol-has-tooltip jse-info
类别名称的div,那么这里是使用xpath和CSS的正确定位策略。
Xpath 常规符号`// tagName [@ attribute ='attributeVale']
//div[@class='main-button ol-has-tooltip jse-info']
driver.findElement(By.xpath(“ // div [@ class ='main-button ol-has-tooltip jse-info']”))。click();
CSS:通用符号tagName.class.name.replace.space.with.dot
div.main-button.ol-has-tooltip.jse-info
driver.findElement(By.cssSelector(“ div.main-button.ol-has-tooltip.jse-info”))。click();
您始终可以在浏览器开发工具中测试xpath和CSS。请参阅我的答案how to check xpath。
答案 1 :(得分:0)
可能在多个标签中使用了类
因此最好使用@supputuri所说的XPath和CSS
您还可以在这里使用elementToBeClickable
等待条件
WebElement element = driver.findElement(By.cssSelector("div.main-button.ol-has-tooltip.jse-info"));
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(element));
element.click();
答案 2 :(得分:-1)
请检查div是否为另一帧。如果它在另一个框架中,则可能必须使用driver.switchTo()。frame(“”)。完成框架中的操作后,必须使用driver.switchTo()。defaultContent()。其次,检查div元素是否可单击。一旦添加了异常详细信息(如果有的话),建议解决方案就更容易了。