【发布时间】:2019-03-12 21:30:01
【问题描述】:
我有两个组合框,我需要从中获取数据。我们称他们为“制造商”和“模型”
当您从一个框中选择制造商时,另一个框会填充该制造商生产的模型。这可以手动工作,但是当我使用 Selenium 以编程方式选择制造商时,“模型”框不会重新填充。这是代码。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import Select
driver = webdriver.Firefox()
#Base URL
driver.get("https://example.com/")
def scrape():
#get manufacturer list
select1 = driver.find_element_by_name("mnfr")
makes = [x.text for x in select1.find_elements_by_tag_name("option")]
print(makes)
#get models list
for m in makes:
select1a = Select(driver.find_element_by_name("makeCodeListPlaceHolder"))
select1a.select_by_visible_text(m)
select2 = driver.find_element_by_name("models")
models = [x.text for x in select2.find_elements_by_tag_name("option")]
print(models)
scrape()
【问题讨论】:
-
不看页面不容易知道,但
select1a.select_by_visible_text(m).click()能得到你想要的吗? -
无属性点击
-
为什么你不能只获取选项列表而不是
x.text并单击选项元素,它将从select1列表框中选择列表项。 -
@DebanjanB 为什么这个答案被标记为重复? “原始”答案是在 Java 中。我问的问题是在 Python 中。
-
@DebanjanB 仅当“装订艺术”不是同一种语言时。我可以在字里行间阅读,但如果用提出问题的语言解释解决方案,也许会对其他人有所帮助。我会说英语,但我讨厌有人教我如何只用俄语弹吉他,尽管无论教练说什么语言,吉他的弹奏都是一样的。我的两分钱。
标签: python selenium selenium-webdriver