javascript - 通过执行 javascript 在 python 中使用 selenium webdriver 隐藏元素

标签 javascript python selenium-webdriver

我想通过在python中执行javascript来隐藏canvas元素上的元素。

我尝试过以下方法:

    def hide_elements():
        driver = LiveLibrary.get_webdriver_instance()

        js_script = '''\
        element1 = document.getElementsByClassName('someclass');
        element1[0].style.display = 'none';
        element2 = document.getElementsByClassName('another');
        element2[0].style.display = 'none';
        element3 = document.getElementsByClassName('highlight');
        element3[0].style.display = 'none';
        element4 = document.getElementsByClassName('overlay');
        element4[0].style.display = 'none';
        '''
        driver.execute_script(js_script)

上面的代码有效,但正如您所看到的,有重复的代码。有没有办法可以简化这个过程,而不是找到每个元素并隐藏它们?

最佳答案

如果每个类只有一个 - 我使用 ES<5 来不破坏你的网络驱动程序:

var cls = ["someclass","another","highlight","overlay"];
for (var i=0;i<cls.length;i++) {
  document.querySelector("."+cls[i]).style.display = "none";
}

这可以在浏览器中使用:

[...document.querySelectorAll("[class^=class]")].forEach(ele => ele.style.display = "none");

对于不同的类别:

["someclass","another","highlight","overlay"]
  .forEach(cls => [...document.querySelectorAll("."+cls)]
  .forEach(ele => ele.style.display = "none"));

对于旧的 JS 版本:

["someclass","another","highlight","overlay"]
  .forEach(function(cls) { [...document.querySelectorAll("."+cls)]
  .forEach(function(ele) { ele.style.display = "none"})});

甚至更老:

var cls= ["someclass","another","highlight","overlay"];
for (var i=0;i<cls.length;i++) {
  var elements = document.querySelectorAll("."+cls[i]);
  for (var j=0;j<elements.length;j++) {
    elements[j].style.display = "none";
  }
}

关于javascript - 通过执行 javascript 在 python 中使用 selenium webdriver 隐藏元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58130097/

相关文章:

javascript - 在 Meteor 中使用 Jasmine 测试异步函数

python - 使用selenium python滚动窗口

selenium-webdriver - Selenium Web 驱动程序--TestNG 报告中未捕获失败屏幕截图

selenium-webdriver - 如何使用 Selenium Webdriver 区分同一页面上具有相同 ID 的两个元素?

javascript - 制作一个简单的登录页面

javascript - Vue2 Collapse - 在事件时将类添加到 v-collapse-wrapper

javascript - 跨重定向保留 window.opener 属性

python - ModuleNotFoundError : No module named 'django.utils.six'

python - 如何在Python中检测staticmethod/classmethod的被调用者类?

python - 获取使用 lxml 设置的单选按钮值的最佳方法是什么?