自学内容网 自学内容网

如何知道一个字段在selenium中是否可编辑?

这篇文章将检查我们如何使用Java检查selenium webdriver中的字段是否可编辑。

我们如何知道我们是否可以编辑字段?“readonly”属性控制字段的可编辑性。如果元素上存在“readonly”属性,则无法编辑或操作该元素或字段。

因此,如果我们找到一种方法来知道元素是否存在“readonly”,那么我们也可以确定字段的可编辑性。

我们可以找到使用-

  • getAttribute()方法
  • 关于Javascript Executor

让我们一个接一个地看看这两种方式。

getAttribute()方法

WebElement接口getAttribute()方法用于获取元素的属性值。

我们将使用getAttribute()方法获取“readOnly”属性的值。如果方法返回true,则意味着该字段不可编辑。否则,该字段是可编辑的。

我们将使用https://testkru.com/Elements/TextFields上的不可编辑元素。

突出显示的元素的ID为“不可编辑”。我们将使用这个id来查找元素,然后了解它的可编辑性特性。

public class CodekruTest {
 
    @Test
    public void test() {
 
        // pass the path of the chromedriver location in the second argument
        System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
 
        // opening the url
        driver.get("https://testkru.com/Elements/TextFields");
 
        WebElement element = driver.findElement(By.id("uneditable"));
 
        // this will tell whether the field is editable or not
        System.out.println("Is text field non-editable: " + element.getAttribute("readonly"));
    }
}

产出-

Is text field non-editable: true

由于readonly属性为我们的元素提供,我们在结果中得到了true。

使用Javascript Executor

javascriptExecutor用于执行selenium中的JavaScript代码。

我们也可以通过JavaScript代码获取readonly属性的值。下面的代码将根据字段是否具有readOnly属性给出true或false。

return arguments[0].readOnly

其中arguments[0]是我们要检查其可编辑性的元素。

public class CodekruTest {
 
    @Test
    public void test() {
 
        // pass the path of the chromedriver location in the second argument
        System.setProperty("webdriver.chrome.driver", "E:\\chromedriver.exe");
        WebDriver driver = new ChromeDriver();
 
        // opening the url
        driver.get("https://testkru.com/Elements/TextFields");
 
        WebElement element = driver.findElement(By.id("uneditable"));
 
        // this will tell whether the field is editable or not
        JavascriptExecutor jse = (JavascriptExecutor) driver;
        System.out.println("Is text field non-editable: " + jse.executeScript("return arguments[0].readOnly", element));
    }
}

产出-

Is text field non-editable: true

原文地址:https://blog.csdn.net/TalorSwfit20111208/article/details/140647161

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!