如何使用幻像和基本的http auth调试selenium webdriver?

时间:2014-07-08 00:23:24

标签: python selenium phantomjs

我正在尝试使用selenium webdriver(python)和phantomJS来自动化在特定网站上完成的一些无聊的管理工作。该网站有一个基本的http auth机制。我运行以下代码,但我没有得到任何东西(即screen.png或title中没有任何内容)。当我使用相同的格式(https://username:password@mywebsite.com)使用wget进行连接时,它可以工作,并且我会获得应该在成功登录时显示的初始主页。我如何调试这个..有没有办法打开详细程度所以我可以看到真正得到的是什么。另请注意,使用firefox或任何其他UI webdriver不是一个选项,因为我只想从防火墙内的linux框运行它。

from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
import getpass

login = "myname"
password = getpass.getpass("Enter password")
password = password.replace("@","%40")
url = "https://%s:%s@mywebsite.com/"%(login,password)

print url

# Create a new instance of the Firefox driver
driver = webdriver.PhantomJS('./phantomjs/bin/phantomjs')

# go to the website 
driver.get(url)
driver.save_screenshot('screen.png')

# the page is ajaxy so the title is originally this:o

print driver.title
driver.set_window_size(1024, 768)
driver.get_screenshot_as_png()

由于

1 个答案:

答案 0 :(得分:1)

作为变体:

  • password.replace()更改为urllib.quote(),因为密码中可能包含@个特殊符号。
  • 将PhantomJS驱动程序更改为Firefox(或任何其他),您将看到PC上会发生什么。
  • driver.get()之后使用以前导入的EC等待页面上的某些元素并且仅在此之后 - 截取屏幕截图。