我有一个 Python 脚本,它使用Selenium WebDriver(以PyVirtualDisplay作为显示器)登录 Flickr。
- http://pastebin.com/dqmf4Ecw(您需要添加自己的 Flickr 凭据)
当我在我的 Debian 服务器上以自己的身份运行它时,它运行良好。(我是 sudoer,但我在运行脚本时不使用 sudo。)
当我以用户身份运行它时www-data
(最终它将运行它,因为我想从 Django 网站触发它),我遇到了两个问题,一个小,一个大:
- (小):
webdriver.Firefox()
调用需要 30-45 秒才能返回,而我自己运行时需要 2 秒 - (大):脚本无法登录 Flickr。为了登录,我在 Flickr 登录页面 (http://www.flickr.com/signin/) 上找到了用户名和密码字段,并使用它
element.send_keys()
来输入用户名和密码。尽管 Selenium 似乎找到了元素(即没有抛出),但是当脚本运行时(根据我使用的屏幕截图NoSuchElementException
),值不会输入到字段中,这与脚本作为我自己运行时不同。www-data
browser.save_screenshot
为什么send_keys()
当脚本运行时不起作用www-data
?(这是否与浏览器启动时间更长有关?)