如何在硒测试中设置html元素的样式显示?

Posted

技术标签:

【中文标题】如何在硒测试中设置html元素的样式显示?【英文标题】:How to set style display of an html element in a selenium test? 【发布时间】:2012-08-25 05:42:11 【问题描述】:

我得到一个像

这样的元素
cv_upload = driver.find_element_by_id('id_cv_upload')

所以我想在 python 本身中将其显示设置为内联。是否可以使用 python 设置显示。 我试过了

cv_upload.style.display = "inline"

这向我显示错误。一种方法进入我的脑海是使用 Jquery 更改显示,然后使用 driver.execute 执行它,但不幸的是我没有得到正确的语法来做到这一点。让我知道如何做到这一点(语法。)谢谢。

【问题讨论】:

查看错误可能很有用 driverfind_element_by_id 是什么鬼? driver = Webdriver.Firefox() selenium web driver @NIleshSharma - 被 jQuery 弄糊涂了,没看到它是 python,奇怪的问题? 我要求两种解决方案,一种是可以使用 python 来设置显示。其次,使用 JQuery 可以这样做,但是如何在 python 程序中执行我的 JQuery。 【参考方案1】:

如果你的元素没有 ID,你可以使用 css 来做同样的事情

在python中:

 driver.execute_script("document.querySelector('yourCSSLocatorGoesHere').style.display='block';")

在 Java 中:

 WebDriver driver=new FirefoxDriver();   
    javascriptExecutor js=(JavascriptExecutor) driver;
  driver.execute_script("document.querySelector('yourCSSLocatorGoesHere').style.display='block';")

【讨论】:

【参考方案2】:
$('#box').css(

  background: "#FF0000",
  "box-shadow": "1px 1px 5px 5px red",
  width: "100px",
  height: "100px",
  display: "block"

);

BSI.id().setStyle() vs jQuery.css() vs. native DOM

【讨论】:

【参考方案3】:

终于找到设置元素显示的方法了。

driver.execute_script("document.getElementById('id_cv_upload').style.display='block';")

基本上使用driver.execute_script我正在执行一个java脚本来设置元素的样式。

【讨论】:

一个java脚本?像一个小程序,还是什么?【参考方案4】:

因为你标记了 jQuery - 你可以使用 css() 函数来设置/获取 css 属性

$('#id_cv_upload').css('display','inline');

【讨论】:

如何在python程序中执行? 这不是问题上下文中的正确答案,即硒。

以上是关于如何在硒测试中设置html元素的样式显示?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 html 中设置输入类型=文件的样式? [复制]

如何在全局样式表中设置角度4组件选择器的样式?

如何在 v-html 中设置标签的子组件样式

如何解析包含样式、颜色、字体系列、字体大小等 Html 标签的数据,并在 android 的 textview 中设置

如何在 C# 中设置元素及其所有子元素的文本颜色和样式

如何从父组件中设置子组件的样式?