我试图用Selenium填写表格。我最初使用过请求,但被告知请求不处理填充此上下文的Javascript表单。本质上我的问题是找到实际的输入id:表单本身,所以我可以插入该数据并提交它(下面的代码)我不熟悉Selenium但是设法阅读文档并找出一些事情。为此,我将使用hotwire.com所以我需要找到表单输入ID:如果你到hotwire.com,你会看到"目的地","签入&# 34; ,"退房"随着客人的数量,最后大红色"寻找酒店"按钮。那么什么是目的地ID?什么是签到ID什么是签出ID?在这一点上,这是唯一让我感到困惑的事情,以及如何实际使用这些过程。当你使用网络检查员填写表格时,你们如何找到适当的输入ID?我花了好几个小时试图找到正确的标签,但仍然没有运气,因为我看到浏览器打开,加载页面,并且没有填充任何数据。
import selenium
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
hotwireF = "https://www.hotwire.com"
# Use Safari to open URL
driver = webdriver.Safari()
# go to URL
driver.get(hotwireF)
search_form = driver.find_element_by_id("destination")
search_form.send_keys("POP")
答案 0 :(得分:0)
import selenium
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
hotwireF = "https://www.hotwire.com/hotels/results/"
# data to be changed accordingly...
data = {"destination" : "London",
"startDate" : "09-08-2017",
"endDate" : "09-09-2017",
"No. rooms" : "1",
"No. Adults" : "2",
"No. Children" : "1"}
# Use Safari to open URL
driver = webdriver.Safari()
# go to URL
driver.get(hotwireF + "".join([data[i]+"/" for i in data]))