如何使用Python报废Selenium中的值?

时间:2019-11-26 09:31:06

标签: python selenium web-scraping css-selectors selenium-chromedriver

我正在尝试使用CSS选择器来废除选项标签中的值,但我不能:

我想在选项标签中抓取值属性,例如<option value='i want to scrap this'>text</option>

这是另一个屏幕截图,因此您可以更好地理解:

enter image description here

在选项标签中,我要取消输入值而不是文本

您可以看到这里是选项值的屏幕截图:

enter image description here

我也想在这里取消值

这是我的代码:

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

任何帮助都会得到赞赏

谢谢!

3 个答案:

答案 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)

要使用<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')