我正在尝试使用CSS选择器来废除选项标签中的值,但我不能:
我想在选项标签中抓取值属性,例如<option value='i want to scrap this'>text</option>
这是另一个屏幕截图,因此您可以更好地理解:
在选项标签中,我要取消输入值而不是文本
您可以看到这里是选项值的屏幕截图:
我也想在这里取消值
这是我的代码:
cur = driver.find_elements_by_css_selector('#id_currency')
country = driver.find_elements_by_css_selector('search-form-place-country')
items = len(cur)
with open('cur.csv','w') as s:
for i in range(items):
s.write(cur[i].text + ',' + country[i].text + '\n')
任何帮助都会得到赞赏
谢谢!
答案 0 :(得分:1)
使用Select
类,专门用于<select>
下拉列表
from selenium.webdriver.support.select import Select
dropDown = driver.find_element_by_id('search-form-place-country')
select = Select(dropDown)
with open('cur.csv','w') as s:
for option in select.options:
s.write(option.get_attribute('value') + '\n')
答案 1 :(得分:1)
要使用css-selectors在<option>
标记中提取值,可以使用以下Locator Strategy:
from selenium import webdriver
from selenium.webdriver.support.ui import Select
select_places = Select(driver.find_element_by_css_selector("select.search-form-place.select.form-control"))
for option in select_places.options:
print(option.get_attribute("value"))
答案 2 :(得分:0)
只需根据选项标签选择它们。
country= driver.find_elements_by_css_selector('option')
新的for循环:
for i in range(items):
s.write(cur[i].text + ',' + country[i].get_attribute["value"] + '\n')