【问题标题】:How to set style display of an html element in a selenium test?如何在硒测试中设置html元素的样式显示?
【发布时间】: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。

标签: jquery python selenium styles


【解决方案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程序中执行?
      • 这不是问题上下文中的正确答案,即硒。
      猜你喜欢
      • 2018-12-26
      • 1970-01-01
      • 2011-02-05
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2018-04-17
      • 2010-09-25
      • 2018-04-10
      相关资源
      最近更新 更多