带document.evaluate xpath的JavascriptExecutor以更改className



我试图更改的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的选项运行良好,将1的类"myclass"名称更改为"clearr",但类"myclass"在很多地方,我需要使用xpath=//*[@class='yclass'][text()='mytext']

第二-我没有失败,但什么都没发生。Still classname='cyclass'

第3个选项:失败

我怎样才能让它发挥作用元素:

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

我建议采用这种方法:
1.使用XPATH或等硒定位器定位元素

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

2.然后使用JavaScriptExecutor来更改该类,如下所示:

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

最新更新