下面是单击wp-login页面登录按钮的简单代码。我想打印按钮点击时由selenium发出的请求。是否可以使用硒。如果没有,还有其他可能的方式。
def init_driver():
driver = webdriver.PhantomJS()
driver.wait = WebDriverWait(driver, 5)
return driver
def clickButton(driver):
driver.get("http://website.com/wp-login.php")
try:
button = driver.wait.until(EC.element_to_be_clickable(
(By.NAME, "wp-submit")))
button.click()
except TimeoutException:
print("Button not found in google.com")
if __name__ == "__main__":
driver = init_driver()
clickButton(driver)
driver.quit()
下面是我使用burpsuite按钮点击捕获的请求,我想在python中打印:
POST /wp-login.php HTTP/1.1
Host: website.com
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Referer: http://website.com/wp-login.php
Cookie: wordpress_test_cookie=WP+Cookie+check; AWSELB=7DdsfsdfsdsfgeredfgfebfgrehgfdcxBD20E6
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Content-Length: 94
log=&pwd=&wp-submit=Log+In&redirect_to=http%3A%2F%2Fwebsite.com%2Fwp-admin%2F&testcookie=1
以下解决方案对我不起作用
How can I see the entire HTTP request that's being sent by my Python application?
因为我想按钮点击打印请求。
答案 0 :(得分:0)
pip install browsermob-proxy
bash browsermob-proxy
)获取“..browsermob-proxy-2.1.4 / bin / browsermob-proxy”文件的路径以在代码中插入:
from selenium import webdriver
from browsermobproxy import Server
server = Server("/pathTo/browsermob-proxy-2.1.4/bin/browsermob-proxy")
server.start()
proxy = server.create_proxy({'captureHeaders': True, 'captureContent': True, 'captureBinaryContent': True})
service_args = ["--proxy=%s" % proxy.proxy, '--ignore-ssl-errors=yes']
driver = webdriver.PhantomJS(service_args=service_args)
proxy.new_har()
driver.get('https://www.google.co.uk/')
print(proxy.har) # this is the archive
# for example:
all_url_requests = [entry['request']['url'] for entry in proxy.har['log']['entries']]
print(all_url_requests)