2017-09-15 113 views
0

我正在使用Behat,Mink和Selenium2進行測試。
我正在運行示例中使用@javascript標記的自動完成搜索示例。
這是例外,我得到:Behat + Mink - Selenium2問題:'requiredCapabilities'參數不是對象

Behat\MinkExtension\Context\MinkContext::visit() 
     'requiredCapabilities' parameter is not an object 
     Build info: version: '3.5.3', revision: 'a88d25fe6b', time: '2017-08-29T12:54:15.039Z' 
     System info: host: '73b4ecff4d3d', ip: '172.17.0.2', os.name: 'Linux', os.arch: 'amd64', os.version: '3.19.0-32-generic', java.version: '1.8.0_131' 
     Driver info: driver.version: unknown 
     remote stacktrace: stack backtrace: 
     0:   0x5787ed - backtrace::backtrace::trace::h59229d13f6a8837d 
     1:   0x578942 - backtrace::capture::Backtrace::new::h23089c033eded8f0 
     2:   0x5068af - <webdriver::capabilities::LegacyNewSessionParameters as webdriver::command::Parameters>::from_json::hd98a6246b0731ef9 
     3:   0x506e44 - <webdriver::command::NewSessionParameters as webdriver::command::Parameters>::from_json::ha19e8e984af08954 
     4:   0x41f249 - <webdriver::command::WebDriverMessage<U>>::from_http::h239258e4ad67ac76 
     5:   0x43a64e - <webdriver::server::HttpHandler<U> as hyper::server::Handler>::handle::hd20f6e9e0a69e2b4 
     6:   0x42c9af - hyper::server::listener::spawn_with::{{closure}}::h8fa3cf343f537777 
     7:   0x4092d7 - std::panicking::try::do_call::h649be53a713433eb 
     8:   0x5dc20a - panic_unwind::__rust_maybe_catch_panic 
           at /checkout/src/libpanic_unwind/lib.rs:98 
     9:   0x41c43e - <F as alloc::boxed::FnBox<A>>::call_box::hf41feb3b2b67541e 
     10:   0x5d48a4 - alloc::boxed::{{impl}}::call_once<(),()> 
           at /checkout/src/liballoc/boxed.rs:650 
           - std::sys_common::thread::start_thread 
           at /checkout/src/libstd/sys_common/thread.rs:21 
           - std::sys::imp::thread::{{impl}}::new::thread_start 
           at /checkout/src/libstd/sys/unix/thread.rs:84 

我正在使用docker-selenium和geckodriver v0.18 Selenium2獨立服務器V3.5.3。

我對貝哈特配置:

default: 
    context: 
    class: 'FeatureContext' 
    extensions: 
    Behat\MinkExtension\Extension: 
     base_url: '<skipped>' 
     goutte: 
     guzzle_parameters: 
       curl.options: 
        CURLOPT_SSL_VERIFYPEER: false 
        CURLOPT_CERTINFO: false 
        CURLOPT_TIMEOUT: 120 
       ssl.certificate_authority: false 
     selenium2: 
     wd_host: "http://127.0.0.1:4444/wd/hub" 
     capabilities: 
      browser: firefox 
#   acceptSslCerts: true 
#   marionette: true 

# No context: 
no_context: 
    paths: 
    bootstrap: 'NON_EXISTING_FOLDER' 
    filters: 
    tags:  '[email protected]' 

# Context based on inheritance: 
inheritance: 
    context: 
    class:  'InheritedFeatureContext' 

# Context based on traits: 
traits: 
    paths: 
    bootstrap: 'features/php54_bootstrap' 
    context: 
    class:  'TraitedFeatureContext' 

# Context based on subcontexting: 
subcontexts: 
    context: 
    class:  'SubcontextedFeatureContext' 

如果連接到localhost:4444我能夠手動創建一個會話。
如果使用python-硒我能夠運行該代碼:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 

driver = webdriver.Remote(
      command_executor='http://127.0.0.1:4444/wd/hub', 
       desired_capabilities=DesiredCapabilities.FIREFOX 
     ) 

#driver = webdriver.Firefox() 
driver.get("http://www.python.org") 
assert "Python" in driver.title 
elem = driver.find_element_by_name("q") 
elem.clear() 
elem.send_keys("pycon") 
elem.send_keys(Keys.RETURN) 
assert "No results found." not in driver.page_source 
driver.close() 

預先感謝您鄉親。

+0

您還需要selenium版本3的python軟件包。你有什麼版本的硒包裝? –

+0

MinkSelenium2驅動程序和Selenium v​​3.5.3作爲獨立服務器。 Python不是問題,它是Behat – affo

+0

從錯誤的外觀看來,Mink似乎與Selenium3不兼容,你能檢查Selenium3的工具站點說的是什麼嗎? –

回答

0

硒2和硒3不相同。它們不是100%兼容的。 Selenium 3是向Selenium的W3C標準邁進的一步。

從似乎水貂可能與硒3兼容。因此,要麼降級的Python硒版本2(即再次可能無法工作,因爲最新的瀏覽器可能只支持3)

也請看看例外https://github.com/minkphp/MinkSelenium2Driver/issues/254

+0

運行硒版本2.53.0工作正常 – affo