Python 在托管应用程序中使用selenium?
我想用我在DigitalOcean托管的Django应用程序单击一个按钮 以下是我脱机时的操作方式: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
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()