【问题标题】:JavascriptExecutor with document.evaluate xpath to change classNameJavascriptExecutor 与 document.evaluate xpath 以更改 className
【发布时间】:2016-04-08 04:48:21
【问题描述】:

我尝试在 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'st class 'myclass' 名称更改为 'clearr',但 class 'myclass' 在很多地方,我需要使用 xpath=//*[@class='myclass '][text()='mytext']

2nd - 我没有失败,但什么也没发生。还是 classname='myclass'

第三个选项:失败

我怎样才能让它工作得到 元素:

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

【问题讨论】:

  • 也许var all=document.getElementsByClassName('myclass'); var i=0; while(i&lt;all.length){all[i].className='clearr';i++;} ?

标签: java selenium xpath selenium-webdriver


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    相关资源
    最近更新 更多