Selenium:通过CssSelector

时间:2016-09-15 16:49:47

标签: java selenium selenium-webdriver automation css-selectors

我正在通过WebElement识别可点击的CssSelector。我使用的示例代码是:

String selectorString = "a.some-text.item";

WebElement we = driver.findElement(By.cssSelector(selectorString));
we.click();

问题是,点击该项后,其CssSelector更改为a.some-text.item.clicked。我仍然可以通过使用上面的selectorString变量来安全地识别它。但是,如果以前没有点击它,我只想点击它。

如何确定商品状态,即其cssSelector名称是a.some-text.item还是a.some-text.item.clicked

1 个答案:

答案 0 :(得分:1)

  

如果之前没有点击过,我只想点击它。

尝试使用cssSelector的{​​{3}}功能仅确定未被点击的元素: -

String selectorString = "a.some-text.item:not(.clicked)";

WebElement we = driver.findElement(By.cssSelector(selectorString));
we.click();

已修改: - 如果您想在点击后确定元素是否包含clicked类,请尝试以下操作: -

String selectorString = "a.some-text.item";
driver.findElement(By.cssSelector(selectorString)).click();

//Now verify element clicked or not 
WebElement we = driver.findElement(By.cssSelector(selectorString));
String msg =  (we.getAttribute("class").contains("clicked")) ? "element clicked" : "element not clicked";
System.out.println(msg);