js 获取某标签下的所有标签的属性值

这篇具有很好参考价值的文章主要介绍了js 获取某标签下的所有标签的属性值。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

def get_node_attr_all(self, node):
    # 获取标签下的所有标签的属性
    attrs = self.driver.execute_script('''
        var nodes = [];
        var items = "";
        function fds(node) { //递归获取标签下的所有子标签
          var children = node.childNodes;
          for (var i = 0; i < children.length; i++) {
            if(children[i].nodeType==1){
                nodes.push(children[i]);
            }
           fds(children[i])
          }
        }
        fds(arguments[0]);
        for (var i=1; i< nodes.length;i++){ // 获取标签的属性值
            node = nodes[i]
            console.log(node.attributes)
            for (index = 0; index < node.attributes.length; ++index) {
                attr = node.attributes[index]
                items += attr.value+" " 
            }
        }
        return items;
     ''', node).lower()
    return attrs
node= driver.find_element(By.XPATH, '//ul/li')
attrs = self.get_node_attr_all(node)
def judge_element_exist(self, js_path, type=1, params=None):
    # 判断标签是否存在
    if type == 1:
        # 元素路径需要双引号包裹
        js_path = js_path.replace('"', "'")
        if params:
            result = self.driver.execute_script(
                '''var temp = arguments[0].querySelector("%s");if(temp){return true}else{return false}''' % js_path,
                params)
        else:
            result = self.driver.execute_script(
                '''var temp = document.querySelector("%s");if(temp){return true}else{return false}''' % js_path)
    else:
        # 元素路径需要单引号包裹 模糊匹配
        js_path = js_path.replace("'", '"')
        if params:
            result = self.driver.execute_script(
                '''var temp = arguments[0].querySelector('%s'); if(temp){return true}else{return false}''' % js_path,
                params)
        else:
            result = self.driver.execute_script(
                '''var temp = document.querySelector('%s');if(temp){return true}else{return false}''' % js_path)
    return result
def js_element_click(self, driver, js_path, type=1):
    # js 元素点击
    if type == 1:
        # 元素路径需要双引号包裹
        driver.execute_script('''document.querySelector("%s").click()''' % js_path)
    else:
        # 元素路径需要单引号包裹(模糊匹配)
        driver.execute_script('''document.querySelector('%s').click()''' % js_path)
def get_node_attr_one(self, node):
    # 获取单个标签的属性名
    attrs = self.driver.execute_script('''var items = "";
                    for (index = 0; index < arguments[0].attributes.length; ++index) {
                    items += arguments[0].attributes[index].name+" " };
                    return items;''', node).lower()
    return attrs
def judge_element_text(self, driver, tag_path, text):
    # js 根据文本定位
    # tag_path  div,span 单个标签名 或者路径 div>div.message>span
    js0 = """
    var temp = Array.from(document.querySelectorAll('%s')).find(el => el.textContent.includes('%s'));
    if(temp){return true}else{return false};
    """ % (tag_path, text)
    result = driver.execute_script(js0)
    return result

def judge_element_text_click(self, driver, tag_path, text):
    # js 根据文本定位
    js0 = """
        var temp = Array.from(document.querySelectorAll('%s')).find(el => el.textContent.includes('%s'));
        if(temp){return temp.click()};
    """ % (tag_path, text)
    result = driver.execute_script(js0)
    return result

文章来源地址https://www.toymoban.com/news/detail-529148.html

到了这里,关于js 获取某标签下的所有标签的属性值的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3前端开发,如何获取组件内dom对象以及子组件的属性和方法

    Vue3前端开发,借助Ref来获取组件内dom对象,借助defineExpose编译宏可以获取到子组件的属性和方法。 app入口文件,我们作为父组件,在里面调用了自定义组件TestCom.vue。 先做了一个测试,借助于ref来访问自身的dom对象。如图所示是可以拿到的。 ref又称谓钩子函数,在vue2版本中

    2024年01月22日
    浏览(59)
  • 删除neo4j所有内容,节点关系以及属性标签

    1.停止neo4j服务器 2.进入安装neo4j的目录删除两个文件夹 neo4j——data——databases 删除neo4j文件夹 neo4j——data——transactions 删除neo4j文件夹 即下图所示的两个文件夹 再打开neo4j会发现已经清空了所有数据

    2024年02月11日
    浏览(40)
  • java 爬虫 获取<ul>标签下<li>标签下的内容

    1 网页内容 all 里面 -- ul - li - 指定div 2 完整代码 将每条数据设置属性 存入map 中 再将map 存入list中

    2024年02月16日
    浏览(37)
  • 性能调优:容易忽视的JavaScript标签属性及其性能影响

    在性能优化中,我们都知道, async 属性可以让 script 标签变得不阻塞 HTML 解析, defer 属性也有类似的功能,但实际 defer 是会阻塞 script 解析的(用 defer 的话,多个 script 会按顺序执行,而 async 执行是无序的,谁下载的快执行谁),使用 async 属性理论上讲,是要比 defer 更快的

    2024年02月21日
    浏览(47)
  • java获取某个文件夹下的所有文件

    目录 一.前言 二.获取文件夹下的文件路径 在我们平时编写开发文档的时候, 我们会获取到项目文件中的所有子文件来展示我们的源代码所储存的位置, 获取我们项目下的所有文件路径,  这时我们会如何用Java代码来获取我们项目下的所有文件呢, 今天我们来比编写一下代码 在

    2024年02月12日
    浏览(78)
  • python获取当前文件下的所有文件名

    运行效果图

    2024年02月12日
    浏览(41)
  • selenium元素定位,获取某个元素下的所有元素

    例: 想要获取所有的li元素: 结果如下 获取到元素后可以直接进行操作: list_tab[2].click() list_tab[5].send_keys(‘123456’)

    2024年02月16日
    浏览(42)
  • 使用Lambda获取List对象中某一个属性以及获取特定条件下的属性对象

    使用Lambda表达式需要jdk1.8以上的环境 如下所示

    2024年02月15日
    浏览(47)
  • Unity 常用路径及获取目标路径下的所有文件

    Unity 常用路径及获取目标路径下的所有文件 获取项目所在绝对路径 Application路径  AssetDatabase路径方法

    2024年02月11日
    浏览(46)
  • 获取FTP服务器某个目录下的所有文件列表

    最近的一个需求为扫描FTP文件夹下的所有文件用于前端下载, 要求多层文件夹内的文件也能被扫到. 多层文件夹一般就要用到递归了, 上代码:  调用该方法: 调用完后, fileList中就有指定目录下的所有文件名  依赖: 定时调用逻辑使用的是PowerJob, 嫌麻烦可以直接使用spring自带的

    2024年02月13日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包