硒无法获取选择结果

谢赫·阿布扎尔

我是selenium的新手,它试图从站点(代码中的链接)获取select标签的值,但是每当我尝试获取select标签时,它都会返回一个空字段。

我的密码


from selenium import webdriver
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome('chromedriver',chrome_options=chrome_options)

url = 'https://lifeinsurance.adityabirlacapital.com/about-us/public-disclosure'
driver.get(url)

select = Select(driver.find_element_by_id("select-public-year"))

print([option.text for option in select.options])
# Output: ['']

当我查看页面源代码时,它显示了以下内容:

<select Name="selectPublicYear" class="demo-default select selectized selectPublicYear" id="select-public-year" name="SelectedYear">
  <option value="2020-2021">2020-2021</option>
  <option value="2019-2020">2019-2020</option>
  <option value="2018-2019">2018-2019</option>
  <option value="2017-2018">2017-2018</option>
  <option value="2016-2017">2016-2017</option>
  <option value="2015-2016">2015-2016</option>
  <option value="2014-2015">2014-2015</option>
  <option value="2013-2014">2013-2014</option>
  <option value="2012-2013">2012-2013</option>
  <option value="2011-2012">2011-2012</option>
  <option value="2010-2011">2010-2011</option>
  <option value="2009-2010">2009-2010</option>
  <option value="2008-2009">2008-2009</option>
  <option value="2007-2008">2007-2008</option>
  <option value="2006-2007">2006-2007</option>
  <option value="2005-2006">2005-2006</option>
</select>

任何提示或帮助将不胜感激。

DebanjanB

<select>标签具有属性,style="display: none;"所以这不是你想要的元素。


要从所有使用的Selenium提取文本,例如2020-2021您必须引入WebDriverWait并且可以使用以下两种定位策略之一<class="option">visibility_of_all_elements_located()

  • 使用CSS_SELECTOR

    driver.get('https://lifeinsurance.adityabirlacapital.com/about-us/public-disclosure')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "div.selectize-input.items.full.has-options.has-items"))).click()
    print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "div.selectize-dropdown-content div.option")))])
    
  • 使用XPATH

    driver.get('https://lifeinsurance.adityabirlacapital.com/about-us/public-disclosure')
    WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//div[@class='selectize-input items full has-options has-items']"))).click()
    print([my_elem.text for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, "//div[@class='selectize-dropdown-content']//div[contains(@class, 'option')]")))])
    
  • 控制台输出:

    ['2020-2021', '2019-2020', '2018-2019', '2017-2018', '2016-2017', '2015-2016', '2014-2015', '2013-2014', '2012-2013', '2011-2012', '2010-2011', '2009-2010', '2008-2009', '2007-2008', '2006-2007', '2005-2006']
    
  • 注意:您必须添加以下导入:

    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法通过硒中的CSS选择器获取元素

来自分类Dev

python硒无法选择元素

来自分类Dev

硒无法从元素获取文本

来自分类Dev

硒无法更改下拉选择

来自分类Dev

硒无法通过ID选择元素

来自分类Dev

硒测试无法单击垫选择元素

来自分类Dev

无法使用硒在“跨度”下选择文本

来自分类Dev

无法获取硒单击以在python上工作

来自分类Dev

无法使用硒通过 ID 获取元素

来自分类Dev

无法获取查询结果

来自分类Dev

无法获取查询结果

来自分类Dev

无法获取查询结果

来自分类Dev

无法从 postgres 获取结果

来自分类Dev

选择获取结果,然后删除

来自分类Dev

如何使用硒获取总搜索结果数

来自分类Dev

C#:硒在伪选择器数据之前获取::

来自分类Dev

硒通过css选择器获取元素

来自分类Dev

硒-无法选择带有ID的输入框

来自分类Dev

无法使用硒选择“div”标签下的文本

来自分类Dev

无法从Celery队列获取结果

来自分类Dev

无法使用对象获取结果

来自分类Dev

无法从查询中获取结果

来自分类Dev

无法从结果集中获取行

来自分类Dev

硒webdriver:无法从webElement.getText()获取数据

来自分类Dev

硒无法在Instagram上获取所有元素

来自分类Dev

无法获取一些文字。蟒蛇。硒

来自分类Dev

硒webdriver:无法从webElement.getText()获取数据

来自分类Dev

硒webdriver触发chrome,但无法打开获取URL

来自分类Dev

BeautifulSoup将无法使用硒获取页面源