如何使用Python中的Selenium选择带有“display:none”属性的web元素中的任何元素

我需要使用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使用以下信息抛出异常:

Message: ”

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

我怎样才能实现这个元素的交互?在这种情况下如何选择任何元素?

提前致谢.

使用execute_script()设置该元素的display属性,然后使用Selenium 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)
相关文章
相关标签/搜索