Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在托管应用程序中使用selenium?_Python_Django_Selenium_Selenium Webdriver - Fatal编程技术网

Python 在托管应用程序中使用selenium?

Python 在托管应用程序中使用selenium?,python,django,selenium,selenium-webdriver,Python,Django,Selenium,Selenium Webdriver,我想用我在DigitalOcean托管的Django应用程序单击一个按钮 以下是我脱机时的操作方式: import selenium.webdriver as webdriver firefox = webdriver.Firefox() firefox.get("http://www.hltv.org/match/2296366-gplay-gamers2-acer-predator-masters-powered-by-intel") element = firefox.find_ele

我想用我在DigitalOcean托管的Django应用程序单击一个按钮

以下是我脱机时的操作方式:

import selenium.webdriver as webdriver

firefox = webdriver.Firefox()
firefox.get("http://www.hltv.org/match/2296366-gplay-gamers2-acer-predator-masters-powered-by-intel")

element = firefox.find_element_by_id("voteteam1")
element.click()

但是我可以在线使用它吗?也许还有其他解决方案?

您需要在Linux机箱上使用firefox作为headless。以下条文应有助于—


如果你“用头”绑定到Firefox或任何其他浏览器,通常的方法是启动一个“虚拟显示”,借助它是一个围绕着
Xvfb
Xephyr
Xvnc
的包装器,请参见下面的答案


另一种选择是使用“无头”浏览器,例如。在这种情况下,更改通常非常简单,替换为:

firefox = webdriver.Firefox()
与:

假设您安装了
PhantomJS

演示:


第三种选择(我最喜欢的)是使用远程selenium服务器,可以是您自己的,也可以是由第三方服务(如或)提供的


BrowserStack
saucelabs
的情况下,您有大量的浏览器和操作系统可供选择。请注意,这些不是免费服务,您需要一个
用户名
和一个
,才能使用此代码。

在我托管的Django应用程序上,您说“您想在线完成”是什么意思。我很困惑,因为脱机使用会打开firefox。但这种情况将如何在网上处理?
driver = webdriver.PhantomJS()
>>> from selenium import webdriver
>>> driver = webdriver.PhantomJS()
>>> driver.get("http://www.hltv.org/match/2296366-gplay-gamers2-acer-predator-masters-powered-by-intel")
>>> driver.title
u'HLTV.org - Hot Match: GPlay vs Gamers2'
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

desired_cap = {'os': 'Windows', 'os_version': 'xp', 'browser': 'IE', 'browser_version': '7.0' }

driver = webdriver.Remote(
    command_executor='http://username:key@hub.browserstack.com:80/wd/hub',
    desired_capabilities=desired_cap)

driver.get("http://www.google.com")
if not "Google" in driver.title:
    raise Exception("Unable to load google page!")
elem = driver.find_element_by_name("q")
elem.send_keys("BrowerStack")
elem.submit()
print driver.title
driver.quit()