JavascriptExecutor 使用 document.evaluate xpath 更改 className

标签 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'");

第一个选项运行良好,并将第一个类“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/

相关文章:

java - 字典顺序快速排序

xml - XQuery 中的 XPath : Fractional Digits

xml - XPath 返回同一级别上的所有元素

xpath - odoo xpath在元素内部添加现有元素

selenium - Selenese html 到底是什么?

python - 为什么鼠标悬停数据消失

java - 当我设置此按钮的可见性消失时出现了一个 SCSS

java - 如何在javamail中设置正确的电子邮件地址?

java - Android 中的 LinearLayout 相当于 Swing

python - 无法点击按钮