从下拉列表中抓取值列表
scraping list of values from drop-down
我正在尝试从网站 https://www.goodjobsfirst.org/violation-tracker 的下拉列表中抓取公司列表,下拉列表是母公司。
我是运行下面的代码
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
url = ('https://www.goodjobsfirst.org/violation-tracker')
browser.get(url)
browser.maximize_window()
element = WebDriverWait(browser, 20).until(Select(browser.find_element_by_id("edit-field-violation-parent-value")))
browser.quit()
但是我收到错误
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="edit-field-violation-parent-value"]"}
(Session info: chrome=83.0.4103.61)
我检查了不同的时间和 edit-field-violation.. 确实是 ID。我也尝试使用 Xpath 和其他选择器来获取它,但没有成功。我错了什么?如何获取下拉列表中所有公司的列表?
谢谢!
此元素位于 <iframe>
内,Selenium 踏步框架像分开的 content/page 一样,您必须使用 browser.switch_to.frame(...)
才能访问它。
from selenium import webdriver
browser = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
#browser = webdriver.Firefox()
url = ('https://www.goodjobsfirst.org/violation-tracker')
browser.get(url)
browser.maximize_window()
frame = browser.find_element_by_tag_name("iframe")
print('frame:', frame)
browser.switch_to.frame(frame)
element = browser.find_element_by_id("edit-field-violation-parent-value")
print('element:', element)
select = Select(select)
print('options number:', len(select.options))
for number, item in enumerate(select.options, 1):
print(number, item.text)
# go back to main content
#browser.switch_to.default_content()
browser.quit()
我正在尝试从网站 https://www.goodjobsfirst.org/violation-tracker 的下拉列表中抓取公司列表,下拉列表是母公司。
我是运行下面的代码
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
url = ('https://www.goodjobsfirst.org/violation-tracker')
browser.get(url)
browser.maximize_window()
element = WebDriverWait(browser, 20).until(Select(browser.find_element_by_id("edit-field-violation-parent-value")))
browser.quit()
但是我收到错误
NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="edit-field-violation-parent-value"]"}
(Session info: chrome=83.0.4103.61)
我检查了不同的时间和 edit-field-violation.. 确实是 ID。我也尝试使用 Xpath 和其他选择器来获取它,但没有成功。我错了什么?如何获取下拉列表中所有公司的列表?
谢谢!
此元素位于 <iframe>
内,Selenium 踏步框架像分开的 content/page 一样,您必须使用 browser.switch_to.frame(...)
才能访问它。
from selenium import webdriver
browser = webdriver.Chrome(executable_path=r"C:\webdrivers\chromedriver.exe")
#browser = webdriver.Firefox()
url = ('https://www.goodjobsfirst.org/violation-tracker')
browser.get(url)
browser.maximize_window()
frame = browser.find_element_by_tag_name("iframe")
print('frame:', frame)
browser.switch_to.frame(frame)
element = browser.find_element_by_id("edit-field-violation-parent-value")
print('element:', element)
select = Select(select)
print('options number:', len(select.options))
for number, item in enumerate(select.options, 1):
print(number, item.text)
# go back to main content
#browser.switch_to.default_content()
browser.quit()