我正在尝试使用selenium搜索关于https://catalog.swarthmore.edu/的课程,并获取结果。我尝试使用的所有选择器都失败,当我打印出来时,它们返回空数组。为什么这些选择器失败,正确的选择器是什么?我通过鼠标悬停并单击带有chromeSelectorGadget扩展名的搜索字段来获得“#关键字”和“span输入”,并通过使用chrome Devtools检查HTML来获得“span.show.clearfix输入”和“.show.clearfix输入”
#import scrapy
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import json
browserOptions = Options()
browserOptions.add_argument('--headless')
driver = webdriver.Chrome('C:/WebDriver/bin/chromedriver.exe', options=browserOptions)
def css(selector):
return driver.find_elements_by_id(selector)
driver.get("https://catalog.swarthmore.edu/")
print(driver.title)
search = css("span.show.clearfix input")#css("#keyword")#get search field
print(search)
print(css("span input"))
print(css(".show.clearfix input"))
print(css("#keyword"))
search.send_keys("ANCH 028")#enter your search.
search.submit()
search.clear()#clear search field
driver.quit()
错误消息: 回溯(最近一次呼叫最后一次): 文件“getDescWJSON.py”,第31行,在 搜索。发送搜索键(“ANCH 028”)#输入搜索。 AttributeError:“列表”对象没有“发送密钥”属性
该页面有多个id=关键字的元素,因此结果是一个列表。要发送密钥,请从列表中选择第一个元素:
请尝试以下代码:
您可能应该更改函数
css
的名称,因为它实际上是按元素id进行搜索的您可以简单地将密钥发送到该元素。等待元素在页面加载后出现,并向元素发送键
进口
这对我很有用:
相关问题 更多 >
编程相关推荐