我正在使用selenium来自动化一些网站。有一个dorpdown让我很难,因为它不是原生的,因为他们使用了一些定制的设计。所以我需要将其css类设置为隐藏,以便我可以轻松地找到本地类。
这是在我点击它之前:
这是在:
之后所以现在我如何使用js自动执行此操作?我尝试过这样的东西,但没有用:
var js:JavascriptExecutor = driver.asInstanceOf[JavascriptExecutor]
js.executeScript("$('.selectpicker select').removeClass('bs-select-hidden')")
感谢
答案 0 :(得分:1)
您使用的是错误的CSS选择器:" .selectpicker select"表示"具有selectpicker类"
的元素的select元素子元素您希望select元素具有selectpicker类。
执行此javascript:
$('select.selectpicker').show();
它将设置" display:block"在这个元素上,它将是可见的。
。
隐藏自定义选择&展示原生的。
由于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" );