如何在硒测试中设置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
执行它,但不幸的是我没有得到正确的语法来做到这一点。让我知道如何做到这一点(语法。)谢谢。
【问题讨论】:
查看错误可能很有用driver
和 find_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元素的样式显示?的主要内容,如果未能解决你的问题,请参考以下文章