带有document.evaluate xpath的JavascriptExecutor来更改className

时间:2016-04-07 01:38:28

标签: java selenium xpath selenium-webdriver

我尝试在Java(webdriver,selenium)中更改类名 元素:

<span class="myclass" role="button">mytext</span>

Java代码:

((JavascriptExecutor) driver).executeScript("document.getElementsByClassName('myclass')[0].className='clearr'");
((JavascriptExecutor) driver).executeScript("document.getElementsByTagName('mytext').className='clearr'");
((JavascriptExecutor) driver).executeScript("document.evaluate('//span[@class='myclass'][text()='mytext']', document, null, XPathResult.ANY_TYPE, null).className='clearr'");

1'st选项工作正常并将1'类'myclass'名称更改为'clearr',但是'myclass'类在很多地方我需要使用xpath = // * [@ class ='myclass '] [文本()=' mytext的']

第二 - 我没有失败但没有任何反应。仍然是classname ='myclass'

第3个选项:失败

我怎样才能让它变得有用 元素:

<span class="clearr" role="button">mytext</span>

1 个答案:

答案 0 :(得分:0)

我建议采用这种方法:
1.使用像XPATH这样的selenium定位器找到你的元素

WebElement ele = driver.findElement(By.xpath("//*[@class='myclass'][text()='mytext']");

2。然后使用JavaScriptExecutor更改该类:

((JavascriptExecutor) driver).executeScript("arguments[0].className='clearr'",element);