如何使用Scrapy而不是Selenium模拟输入字段中的数据输入并触发按钮单击

0g0grzrc  于 2023-11-19  发布在  其他
关注(0)|答案(1)|浏览(100)

在使用Selenium之后,我正在将我的项目转换到Scrapy,但我遇到了一些挑战。我已经研究了文档,但还没有找到解决方案。

input_element = driver.find_element(By.ID, "location-typeahead-home-input")
input_element.send_keys("Boston Park Plaza")
time.sleep(2)

button_xpath = "//main[@id='main-content']//button"
button_elements = driver.find_elements(By.XPATH, button_xpath)
if len(button_elements) >= 2:
    second_button = button_elements[1]
    second_button.click()
else:
    button_elements[0].click()`

字符串
我已经尝试了示例代码,但它似乎需要一个表单,而表单在本文中不可用。

input_element = response.css("input#location-typeahead-home-input")
input_element_value = "Boston Park Plaza"

button = response.xpath("//main[@id='main-content']//button")

yield scrapy.FormRequest.from_response(
    response,
    formdata={input_element.attrib['name']: input_element_value},
    formname=None,
    clickdata={'xpath': "//main[@id='main-content']//button"},
    callback=self.after_search
)`


我试图将我的Selenium项目转换到Scrapy,遇到了输入字段交互和按钮单击的问题。

zysjyyx4

zysjyyx41#

最简单的答案是:你不能使用Scrapy按按钮!
你需要理解数据是如何被发送到服务器的(即POST方法),然后你必须像浏览器一样叙述事情。

相关问题