【问题标题】:Return Value from Dropdown with Python使用 Python 从下拉列表中返回值
【发布时间】:2014-09-24 04:16:34
【问题描述】:

我有一个带有以下代码的下拉菜单。当我加载网页时,表格已填写。我想返回已经选择的值并将其分配给 Python 变量。我收到错误:TypeError: get_attribute() takes exactly 2 arguments (1 given)

HTML:

<select id="TimeZone" name="TimeZoneTable"  size="1">   
    <option value="EST">Eastern Standard Time</option>
    <option value="Central">Central Time</option>
    <option value="Mountain">Mountain Time</option>
</select>

Python:

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('someurl.com')
driver.get_element_by_ID
value = driver.find_element_by_name("TimeZoneTable").get_attribute()
print value

【问题讨论】:

  • driver.get_element_by_ID 在您的代码中什么也不做。
  • get_attribute() 很可能将您想要的属性名称作为参数,但您没有提供。

标签: python python-2.7 selenium selenium-webdriver


【解决方案1】:
driver.find_element_by_name("TimeZoneTable").get_attribute("value") 

【讨论】:

  • 这很好,但是如果我想返回文本呢?
  • 你到底想得到什么.getText()
  • 是的,我想返回东部标准时间。
【解决方案2】:

错误是因为 get_attribute 方法需要 1 个变量并获取与该变量关联的值。

value_size = driver.find_element_by_name("TimeZoneTable").get_attribute('size')
value_id = driver.find_element_by_name("TimeZoneTable").get_attribute('id')

value_size 现在具有分配给 'size' 属性的值。

如果要获取第一个选择的选项,方法如下:

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

time_zone_obj = driver.find_element_by_id('TimeZone')
options_time_zone = Select(time_zone_obj)
selected_text = options_time_zone.first_selected_option.text
print ">>> selected option is %s"%(selected_text)

【讨论】:

    【解决方案3】:

    请在 Java 中找到以下代码。它可能会有所帮助。使用 Select 选择选项。

    WebDriver driver = new FirefoxDriver();
    driver.get("Your URL");
    driver.manage().window().maximize();
    
    WebElement element=driver.findElement(By.id("TimeZone")); 
    
    Select options = new Select(element);
    options.selectByValue("Central"); //Choose EST etc in place of Central
    

    【讨论】:

      猜你喜欢
      • 2013-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多