如何使用Ruby访问Heroku上的Google用户个人资料?

时间:2019-04-29 02:11:09

标签: ruby google-chrome heroku selenium-chromedriver watir

我有一个Ruby程序,可以使用Selenium-Chromedriver自动执行Web应用程序的简单数据输入任务。为了使该程序正常运行,我需要创建一个chromedriver实例,该实例以登录到我的google帐户时开始,因为该Web应用程序如果无法识别浏览器正在使用该浏览器,则不允许您登录有人熟悉。为了满足这些条件,我像这样设置驱动程序:

args = ['user-data-dir=C:\Users\user\AppData\Local\Google\Chrome\User Data']
options = Selenium::WebDriver::Chrome::Options.new(args: args)
driver = Selenium::WebDriver.for(:chrome, options: options)
$browser = Watir::Browser.start("https://nycseminarcenter.tripleseat.com/calendar", driver)

我想将此程序添加到Heroku上计划自动运行的其他程序的集合中,并且我安装了应该让我使用Heroku中的Selenium的buildpack(https://github.com/heroku/heroku-buildpack-google-chrome和{ {3}}),但是当我尝试按原样运行程序时,出现以下错误

/app/vendor/bundle/ruby/2.5.0/gems/selenium-webdriver-3.142.0/lib/selenium/webdriver/remote/response.rb:72:in `assert_ok': unknown error: DevToolsActivePort file doesn't exist (Selenium::WebDriver::Error::UnknownError)  
(Driver info: chromedriver=2.46.628388 (4a34a70827ac54148e092aafb70504c4ea7ae926),platform=Linux 4.4.0-1038-aws x86_64)  

从我创建Webdriver对象的行开始。我猜测“ DevToolsActivePort文件不存在”是因为Heroku没有像我的本地ruby环境那样有我的用户数据目录的副本。有什么特殊的方法可以直接在Heroku上直接访问Google用户个人资料吗?

0 个答案:

没有答案