我尝试更改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'");
第一个选项运行良好,并将第一个类“myclass”名称更改为“clearr”,但类“myclass”在很多地方,我需要使用 xpath=//*[@class='myclass '][text()='mytext']
第二 - 我没有失败,但什么也没有发生。仍然是classname='myclass'
第三个选项:失败
我怎样才能让它发挥作用 元素:
<span class="clearr" role="button">mytext</span>
最佳答案
我建议采用这种方法:
1.使用像XPATH这样的selenium定位器来定位你的元素
WebElement ele = driver.findElement(By.xpath("//*[@class='myclass'][text()='mytext']");
2.然后使用 JavaScriptExecutor 来更改该类,如下所示:
((JavascriptExecutor) driver).executeScript("arguments[0].className='clearr'",element);
关于JavascriptExecutor 使用 document.evaluate xpath 更改 className,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36465220/