【发布时间】:2021-01-10 15:40:09
【问题描述】:
我在 GNU/Linux 上有一个测试机器人,它可以将一些电子邮件输入到某种形式并提交它们。它没有与 Rails 集成。
我的机器人看起来像这样:
#!/usr/bin/ruby -w
%w(capybara/dsl selenium-webdriver).each(&method(:require))
Capybara.default_driver = :selenium
Selenium::WebDriver::Firefox::Binary.path = '/opt/firefox-developer-edition/firefox'
Capybara.register_driver(:default_profile) do |a|
Capybara::Selenium::Driver.new(a, browser: :firefox, profile: 'default')
end
Capybara.default_driver = :default_profile
Capybara.current_session.driver.browser.manage.window.resize_to(640, 720)
emails = %w(
something1@someone.me
something2@someone.me
something3@someone.me
something4@someone.me
something5@someone.me
something6@someone.me
something7@someone.me
)
names = %W(Sourav SouravGoswami #{"Sourav Goswami"})
n = emails.length
time, len, dsl = Time.now, n.to_s.length, Class.new.extend(Capybara::DSL)
emails.each.with_index do |email, i|
name = names.rotate![0]
elap = Time.now - time
rem = n.*(elap).fdiv(i + 1).-(elap)
print "\e[2K#{sprintf("%0#{len}d", i)} / #{n} | Elapsed: #{elap.round(1)} s | Remaining: #{rem.round(1)} s\r"
dsl.visit('https://somewebsite.net')
dsl.find('#name').set(name)
dsl.find('#email').set(email)
dsl.find('#submit').click
end
但每次我使用完全更新的 selenium webdriver 运行它时,都会收到以下警告:
/usr/local/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/driver.rb:54: warning: Using the last argument as keyword parameters is deprecated; maybe ** should be added to the call
/usr/local/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/firefox/driver.rb:31: warning: The called method `new' is defined here
2020-09-24 16:13:14 WARN Selenium [DEPRECATION] :profile is deprecated. Use Selenium::WebDriver::Firefox::Options#profile= instead.
所以我考虑过使用:
c = Selenium::WebDriver::Firefox::Options.new
c.profile = 'default'
但这不会在默认配置文件中打开 Firefox,也不会调整窗口大小。
我找不到记录 Selenium::WebDriver::Firefox::Options#profile 的好文档。
那么我该如何摆脱这个错误(使用 -W0 ruby 标志除外)?
【问题讨论】:
-
如果您使用 capybara,则添加 capybara 标签。其他标签不重要。
标签: ruby selenium selenium-webdriver capybara