用Python获取下拉菜单返回值

1 投票
3 回答
968 浏览
提问于 2025-04-18 15:36

我有一个下拉菜单,下面是相关的代码。当我加载网页时,表单已经填写好了。我想要获取当前选中的值,并把它赋给一个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

下面是一些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
0

这个错误是因为 get_attribute 方法只需要一个变量,它会获取与这个变量相关的值。

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)
0

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,特别是当我们还不太熟悉这些工具的时候。比如,有人可能在使用某个特定的功能时,发现它的表现和预期不一样。这种情况很常见,尤其是在学习新东西的时候。

解决这些问题的一个好方法是去查阅相关的文档或者在网上寻找答案。像StackOverflow这样的网站就是一个很好的资源,很多开发者会在上面分享他们的经验和解决方案。通过阅读别人的问题和答案,我们可以更好地理解如何使用这些工具,避免犯同样的错误。

总之,遇到问题时不要气馁,积极寻找帮助和学习的机会,这样才能不断进步。

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

撰写回答