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

3
我正在使用Selenium自动化一些网站。有一个下拉框给我带来了麻烦,因为它不是原生下拉框,而是他们使用的某个自定义设计的下拉框。所以我需要将其CSS类设置为隐藏,这样就可以轻松地找到原生的下拉框。
这是在我点击它之前: enter image description here 这是之后: enter image description here 那么现在如何使用JS自动完成呢?我尝试过以下代码但没有成功:
 var js:JavascriptExecutor = driver.asInstanceOf[JavascriptExecutor]
    js.executeScript("$('.selectpicker select').removeClass('bs-select-hidden')") 

谢谢


你不应该试图强制更改类。你应该像用户一样与页面交互。这就是Selenium的设计理念。用户做了什么会更改类? - JeffC
2个回答

1
您正在使用错误的CSS选择器:".selectpicker select" 的意思是“具有selectpicker类的元素的子元素中的select元素”。
您想要具有selectpicker类的select元素。
执行此JavaScript代码:
$('select.selectpicker').show();

这将在此元素上设置"display:block",并使其可见。

编辑

来自selectpicker文档(https://silviomoreto.github.io/bootstrap-select/)。 隐藏自定义选择并显示原生选择。 由于选择具有display:none!important,我们需要强制显示它。

有三种方法可以实现:

  • remove the specific classes "selectpicker" and "bs-select-hidden" that makes it hidden.

    $('select.selectpicker').selectpicker('hide')
                            .removeClass("selectpicker bs-select-hidden");
    
  • remove all classes (may break the layout)

    $('select.selectpicker').selectpicker('hide')
                            .removeClass();
    
  • force display:inline-block (default display value for selects)

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

它不起作用...什么也没有发生。只是为了确保,我想隐藏非本地下拉菜单 :) - Joe
但是您是否也希望本地语言的内容出现? - Apolo
是的,我知道,但是你给我的这个命令在这种情况下不起作用 :/ - Joe
请问您能提供测试的网址吗? - Apolo
我们有进展 :) 但现在它隐藏了整个下拉菜单...我什么也看不到...我只想隐藏自定义的,保留原生的。 - Joe
显示剩余2条评论

0
你可以直接将元素的 class 设为空。
document.getElementById("whatever").className = "";

或者如果您想保留特定类别,只需重置该类别

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

请检查使用JavaScript(无jQuery)从元素中删除CSS类

或者如果你使用了jQuery

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

我使用了jQuery,但它没有起作用...$( "id/class" ).removeClass( "blue under" ) - Joe
请查看此链接:http://stackoverflow.com/questions/3677389/jquery-dropdown-remove-class-after-disappears - Arun

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接