【问题标题】:How to print list of months present in dropdown list using Selenium Python with Webdriver如何使用 Selenium Python 和 Webdriver 打印下拉列表中存在的月份列表
【发布时间】:2018-09-21 02:36:04
【问题描述】:

下拉详情

 <select name="fromMonth">
 <option value="1">January
 </option><option value="2">February
 </option><option value="3">March
 </option><option value="4">April
 </option><option value="5">May
 </option><option value="6">June
 </option><option value="7">July
 </option><option value="8">August
 </option><option selected="" value="9">September
 </option><option value="10">October
 </option><option value="11">November
 </option><option value="12">December
 </option></select>

我想打印
一月
二月
等等……

【问题讨论】:

标签: python selenium selenium-webdriver drop-down-menu webdriver


【解决方案1】:

这会有所帮助:

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

url='' //of webpage

driver.maximize_window()

driver.get(url)

listofelements=driver.find_elements(By.XPATH,'//*[@name="fromMonth"]/option') //to take all elements matching xpath

for i in range(len(listofelements)):
    print(listofelements[i].text) //print all elements of list

【讨论】:

    【解决方案2】:

    根据 HTML 打印下拉列表中的月份列表,您可以使用以下解决方案:

    selectmonth = Select(driver.find_element_by_name('fromMonth'))
    for option in selectmonth.options:
        print(option.text)
    

    【讨论】:

      【解决方案3】:

      我认为是"November" 而不是"No在此处输入代码vember"

      在 JAVA 中你可以这样使用,你可以在 Python 中应用相同的逻辑

      //locate select drop down
      WebElement monthsElement = driver.findElement(By.name("fromMonth"));
      
      // use select class
      Select monthsDrop = new Select(monthsElement);
      
      //store the list all months in list using getOptions()
      List<WebElement> allmonths = monthsDrop.getOptions();
      
      //traverse and print all elements
      for (WebElement tempmonth : allmonths) {
          System.out.println(tempmonth.getText());
      }
      

      【讨论】:

      • 这看起来很完美,因为用户共享的下拉元素具有“选择”标签。但是,您可能希望根据用户的请求将其移植到 Python。
      【解决方案4】:
      dropdown_data = driver.findElement(By.xpath("Xpath of the dropdown")) 
      

      #选择下拉菜单

      for i in range len(dropdown_data):
          print(dropdown_data[i].text)
      

      【讨论】:

      • 这看起来不像是有效的 Python。 // 应该是#,for 语句会给出语法错误。如果你的意图是for i in range(len(dropdown_data)),它也不会起作用,因为我将是一个整数,所以你不能做i.text
      • 常识老兄!
      猜你喜欢
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      • 2018-08-28
      • 1970-01-01
      • 1970-01-01
      • 2020-05-20
      • 2022-12-03
      相关资源
      最近更新 更多