我正在开展一个项目,我需要使用第三方网站验证一段数据。我使用lxml包编写了一个python脚本,该包成功检查特定数据是否有效。
不幸的是,该网站的数据没有方便的网址方案,因此我无法预测将包含每个唯一请求的数据的特定网址。相反,第三方网站有一个查询页面,其中包含一个标准的html文本输入,可以重定向到正确的URL。
我的问题是:有没有办法在html输入中输入一个值并从我的python脚本中提交所有内容?
答案 0 :(得分:3)
是的。
import mechanize
br = mechanize.Browser()
br.open(url)
for form in br.forms():
print "Form name:", form.name
print form
br.select_form("form1")
br.form = list(br.forms())[0]
br.select_form("login")
br['login:loginUsernameField'] = user
br['login:password'] = password
br.method = "POST"
response = br.submit()
给定一个元素定义为:
<input type="text" name="passwd" id="passwd-id" />
您可以使用以下任何一种方式找到它:
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
您可能想在文本字段中输入一些文字:
element.send_keys("some text")
您可以使用“Keys”类模拟按箭头键:
element.send_keys("and some", Keys.ARROW_DOWN)
这些是我所知道的可以做你所问的两个包。