如何使用javascript取消选择CSS样式?

时间:2015-10-15 12:22:05

标签: javascript jquery css selenium selenium-webdriver

我正在使用selenium来自动化一些网站。有一个dorpdown让我很难,因为它不是原生的,因为他们使用了一些定制的设计。所以我需要将其css类设置为隐藏,以便我可以轻松地找到本地类。

这是在我点击它之前:

enter image description here

这是在:

之后

enter image description here

所以现在我如何使用js自动执行此操作?我尝试过这样的东西,但没有用:

 var js:JavascriptExecutor = driver.asInstanceOf[JavascriptExecutor]
    js.executeScript("$('.selectpicker select').removeClass('bs-select-hidden')") 

感谢

2 个答案:

答案 0 :(得分:1)

您使用的是错误的CSS选择器:" .selectpicker select"表示"具有selectpicker类"

的元素的select元素子元素

您希望select元素具有selectpicker类。

执行此javascript:

$('select.selectpicker').show();

它将设置" display:block"在这个元素上,它将是可见的。

修改

来自selectpicker doc(https://silviomoreto.github.io/bootstrap-select/)的

。 隐藏自定义选择&展示原生的。 由于select有display:none!important,我们需要强制它显示。

有三种方法:

  • 删除特定类" selectpicker"和" bs-select-hidden"这使它隐藏起来。

    $('select.selectpicker').selectpicker('hide')
                            .removeClass("selectpicker bs-select-hidden");
    
  • 删除所有类(可能会破坏布局)

    $('select.selectpicker').selectpicker('hide')
                            .removeClass();
    
  • 强制display:inline-block(选择的默认显示值)

    $('select.selectpicker').selectpicker('hide')
                            .css("display","inline-block !important");
    

答案 1 :(得分:0)

您可以简单地将元素类设置为空。

document.getElementById("whatever").className = "";

或者如果你想保留一个特定的课程,你可以重置课程

document.getElementById("whatever").className = "";
document.getElementById("whatever").className = "classToKeep";

检查此Remove CSS class from element with JavaScript (no jQuery)

或者如果您使用了jquery

$( "id/class" ).removeClass( "blue under" );