有没有一种方法来处理Selenium中的div类?

时间:2019-05-07 01:10:19

标签: java selenium selenium-webdriver

我试图弄清楚如何将 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();

但是对我没有用,我该如何处理? 谢谢。

3 个答案:

答案 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元素是否可单击。一旦添加了异常详细信息(如果有的话),建议解决方案就更容易了。