首页 > 其他分享 >如何知道一个字段在selenium中是否可编辑?

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

时间:2024-07-23 21:59:20浏览次数:16  
标签:field selenium 元素 driver readonly 编辑 字段 editable

这篇文章将检查我们如何使用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

标签:field,selenium,元素,driver,readonly,编辑,字段,editable
From: https://blog.csdn.net/TalorSwfit20111208/article/details/140647161

相关文章

  • 帝国CMS网站后台批量替换字段值为对信息表字段的内容进行批量替换字段值
    (一)、登录后台,单击“栏目”菜单,选择“批量替换字段值”子菜单,进入批量替换字段值界面: (二)、进入批量替换字段值界面:选择替换表选择要替换哪个表的字段。操作栏目选择只替换哪个栏目的信息。替换字段选择要替换内容的字段。替换内容原字......
  • 基于 HTML5 和 Canvas 开发的在线图片编辑器
    预览https://zaixianps.net技术栈HTML5:构建用户界面,提供语义化标签。CSS3:美化界面,增强用户体验。JavaScript:处理用户交互,管理Canvas操作。CanvasAPI:主要绘图工具,用于图像处理。项目结构image-editor/│├──index.html//主页面├──style.css//......
  • 帝国CMS网站后台批量替换字段值为对信息表字段的内容进行批量替换
    (一)、登录后台,单击“栏目”菜单,选择“批量替换字段值”子菜单,进入批量替换字段值界面: (二)、进入批量替换字段值界面:选择替换表选择要替换哪个表的字段。操作栏目选择只替换哪个栏目的信息。替换字段选择要替换内容的字段。替换内容原字......
  • Pycharm社区版在外部安装了selenium,ddt在项目中却无法用(安装了第三方包pycharm无法识
    1.安装selenium的方法(1)找到存放selenium目录的文件夹,右击“在终端中打开”(2)在命令行中输入pipinstallseleniumXXX.whl(3)等待些许时间,等待到提示安装成功2在pycharm中创建项目能识别到安装到的包(1)点击file——》NewProject(2)勾选上Inherit globalsite-packag......
  • Python字段的字符串注释
    Python是否支持类字段的任何类型的字符串注释?例如,在Golang中,我可以定义这样的结构,带有可选的字符串标签:typeUserstruct{Namestring`example:"name"`}我需要在Python中定义一个新类,其中包含包含点.的字段名称。我希望可能有某种方法来注释字段,或者......
  • Swagger文档折叠了字段描述,很苦恼!
    引言在SwaggerUI3.0及之后的版本,文档中的模型显示上,一些简单数据类型的字段描述都被折叠掉了,一眼望去全都是中括号。相比于2.0版本非常不直观。正文看了一些解决方案,一些大佬直接嵌入js把折叠展开了,非常的有效果,但少了点优雅。翻了一些资料发现中间件本身带有一些设置项......
  • selenium ValueError: Timeout value connect was <object object at 0x0000022273034
    Traceback(mostrecentcalllast):File"E:\01_pycharmProject\hengyi\img_split\get_urls_bySel.py",line24,indriver=webdriver.Chrome(options=option)原因:selenium与urllib版本不匹配原selenium版本为4.1.3,urllib为2.2.2,并将chromedriver.exe更新到python/sc......
  • 需要帮助使用 Selenium Python 单击 Microsoft Teams 按钮
    我将Python与Selenium结合使用,并自动登录MicrosoftTeams。进入后,弹出窗口显示我需要单击“立即切换”以切换到V2版本。我似乎无法使用SeleniumPython成功单击此按钮。谁能帮我自动点击这个按钮?这是我不成功的尝试:self.driver.find_element(By.CLASS_NAME,......
  • 跳过 Python Spark Pyspark Databricks 未知字段异常中的不良记录
    我想知道是否有人知道如何跳过我们从json文件获取的记录这是错误[UNKNOWN_FIELD_EXCEPTION.NEW_FIELDS_IN_RECORD_WITH_FILE_PATH]在解析过程中遇到未知字段:这是失败的代码sent=spark.readStream.format('cloudFiles')\.option('cloudFiles.format','json')......
  • python selenium 行为错误:AttributeError:“Context”对象没有属性“driver”
    我正在使用pythonselenium与Behavior包一起工作。这是代码:@given('theuserisontheloginpage')defstep_given_user_on_login_page(context):PATH='C:/Users/PycharmProjects/ui_test/chromedriver-win32/chromedriver.exe'context.driver=......