Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用;数据-*”;属性来替换;id";用于CSS选择的HTML标记中的属性_Html_Selenium_Css Selectors_Custom Data Attribute - Fatal编程技术网

使用;数据-*”;属性来替换;id";用于CSS选择的HTML标记中的属性

使用;数据-*”;属性来替换;id";用于CSS选择的HTML标记中的属性,html,selenium,css-selectors,custom-data-attribute,Html,Selenium,Css Selectors,Custom Data Attribute,使用“数据-”属性替换元素(标记)中的“id”属性以进行css选择,然后在自动化测试脚本中使用这些“数据-*”属性是一个好主意吗?事实上,您可以使用元素的任何属性 因此,Yes,您可以使用数据-*属性,而不是id属性,只要元素是唯一标识的 data-*属性用于存储页面或应用程序专用的自定义数据 data-*属性使我们能够在所有HTML元素上嵌入自定义数据属性 然后,存储的(自定义)数据可以在页面的JavaScript中使用,以创建更具吸引力的用户体验(无需任何Ajax调用或服务器端数据库查询

使用“数据-”属性替换元素(标记)中的“id”属性以进行css选择,然后在自动化测试脚本中使用这些“数据-*”属性是一个好主意吗?

事实上,您可以使用元素的任何属性

因此,Yes,您可以使用
数据-*
属性,而不是
id
属性,只要元素是唯一标识的


  • data-*
    属性用于存储页面或应用程序专用的自定义数据
  • data-*
    属性使我们能够在所有HTML元素上嵌入自定义数据属性
  • 然后,存储的(自定义)数据可以在页面的JavaScript中使用,以创建更具吸引力的用户体验(无需任何Ajax调用或服务器端数据库查询)
  • data-*
    属性由两部分组成:
    • 属性名称不应包含任何大写字母,且前缀
      data-
    • 属性值可以是任何字符串
  • 注意:用户代理将完全忽略前缀为
    data-
    的自定义属性

在id上选择CSS和DOM树要比选择任何其他属性快得多。在某些浏览器中,数据属性选择的效率可能低于对其他属性的选择


如果您滥用id属性,则可能会出现例外情况:在id属性中存储的不仅仅是标识符的内容(例如复合数据或非唯一的内容)。如果支持,选择部分id值会带来糟糕的性能。我建议使用数据属性而不是滥用id属性。

问题是,“这是个好主意吗?”而不是“可以做到吗?”这完全是离题的。为什么有必要这样做?