使用Python从Dropdown返回值

时间:2014-08-01 02:46:46

标签: python python-2.7 selenium selenium-webdriver

我有一个下拉代码。加载网页时填写表单。我想返回已经选择的值并将其分配给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

3 个答案:

答案 0 :(得分:0)

driver.find_element_by_name("TimeZoneTable").get_attribute("value") 

答案 1 :(得分:0)

错误是因为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)

答案 2 :(得分:0)

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

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