当前位置: 首页 > 面试题库 >

如何在Python中使用Selenium从具有“ display:none”属性的Web元素中选择任何元素

章青青
2023-03-14
问题内容

我需要从具有如下display: none属性的web元素中选择任何元素:

<div class="some_class">
  <select id="some_id" class="some_select_class" style="display: none;">
    <option value="1" data-isleaf="false" data-catid="3" data-special_message="" data-adtypeid="0">1</option>
    <option value="2" data-isleaf="true" data-catid="4" data-special_message="" data-adtypeid="1">2</option>    
  </select>
</div>

我可以通过Web浏览器手动完成此操作,但是我需要通过Python中的Selenium进行操作。不幸的是,当我有以下代码时:

try:
  element = selenium.webdriver.support.ui.WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, 'some_id')))
  selenium.webdriver.support.ui.Select(element).select_by_value('1')
except Exception as ex:
  print(ex)

WebDriverWait 抛出带有以下信息的异常:

信息: ‘’

异常的类型是 selenium.common.exceptions.TimeoutException

如何实现此元素的交互?在这种情况下,如何选择任何元素?

提前致谢。


问题答案:

使用execute_script()来设置元件的显示特性,然后使用硒Select,用于选择所需的值。

下面的代码应该为您工作:

    try:
      selenium.webdriver.support.ui.WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, 'some_other_id_on_page')))
      selenium.execute_script("document.getElementById('some_id').style.display='inline-block';")
      element = selenium.webdriver.support.ui.WebDriverWait(driver, 60).until(EC.visibility_of_element_located((By.ID, 'some_id')))
      selenium.webdriver.support.ui.Select(element).select_by_value('1')
    except Exception as ex:
    print(ex)


 类似资料:
  • 我正在尝试使用Javascript选择此复选框 下面的代码可以工作,但并不理想 我试过这些 但它们并不起作用。有什么想法能让这件事成功吗? 数据值未硬编码的更新代码

  • 问题内容: 我正在Python中使用Selenium。我想获取一个元素的,并检查它是否是我所期望的。 这是我的代码: 我怎样才能做到这一点?Selenium文档似乎有很多关于选择元素的内容,但是与属性无关。 问题答案: 您可能正在寻找。一个例子示此处以及

  • 我想点击div[@id='main_filter'],然后从下拉菜单中选择一个li元素。 我正在创建一个用于SelectFromDropDown的泛型方法。 我的解决方案:private IWebElement parentFilter=>Driver.FindElement(By.xpath(“//div[@id='main_filter'][1]/span”));

  • 问题内容: 我知道我可以定位CSS中具有 特定 属性的元素,例如: 但是,是否可以将具有任何值属性的元素作为目标(除了什么都没有,即当尚未将属性添加到元素时)? 大致类似: 哪个应定位此HTML中的第一个和第三个标记: 我认为这是可能的,因为默认情况下,似乎将其应用于具有其属性值的任何标签。 问题答案: 以下内容将匹配定义了属性的所有锚标记: 更新: 要解决上述@vsync场景,在注释部分(区分为

  • 我有一个HTML页面中的一长串表。以下只是列表的一小部分。 我想检查

  • https://imgur.com/vfhp8n7.png 当我单击B按钮时,整行隐藏 我需要硒来点击B按钮,然后点击下一个B按钮 我想执行,但是数字4352,6820每次都不一样 你有什么想法吗? 编辑