2016-03-08 5 views
7

इम वर्तमान में एक स्वीकृति परीक्षण बनाने निम्नलिखित उपकरणों के साथ:PhantomJS स्व-हस्ताक्षरित HTTPS पृष्ठों पर जा सकते हैं नहीं Codeception

  • Codeception
  • सेलेनियम Webdriver
  • PhantomJS (बिना सिर ब्राउज़र भूत के रूप में)

मेरी समस्या एक स्व-हस्ताक्षरित (https) पृष्ठ पर जाने पर मेरे टेस्ट विफल हो जाते हैं

मैं क्या कोशिश की है:

  1. phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any
  2. मेरी acceptance.suit.yml

में क्षमताओं phantomjs.cli.args: ["--ignore-ssl-errors=true"] में यह जोड़ा जा रहा है अब तक इन विकल्पों में does not मुझे किसी भी भाग्य दे।

यहाँ मेरी acceptance.suit.yml फ़ाइल

class_name: AcceptanceTester 
modules: 
    enabled: 
     - WebDriver 
    config: 
     WebDriver: 
      url: https://myproject.com 
      browser: firefox 
      capabilities: 
       unexpectedAlertBehaviour: 'accept' 

env: 
    phantom: 
     modules: 
      enabled: 
       - WebDriver 
      config: 
       WebDriver: 
        url: https://myproject.com 
        http_proxy: 192.1.1.1 
        http_proxy_port: 3000 
        browser: phantomjs 
        capabilities: 
         phantomjs.cli.args: ["--ignore-ssl-errors=true"] 

अद्यतन

यह त्रुटि [ModuleException] WebDriver: Current url is blank, no page was opened

मैं नहीं जानता कि क्यों इस त्रुटि होता है के बाद से मैं एक पृष्ठ इंगित किया है दिखाता है। यहां मेरे परीक्षण

public function tryToTestThis(AcceptanceTester $I) 
{ 
    $I->wantTo('Test this function'); 
    $I->amOnPage('/mypage/'); 
    $I->see('This text'); 
} 

संहिता में एक उत्तर बेहतर होगा। धन्यवाद

+0

आप क्या हो रहा है के बारे में अधिक विस्तार से बता सकते हैं? कोई त्रुटि, परीक्षण कैसे विफल रहता है? धन्यवाद। – alecxe

+0

@alecxe हाय मैंने अपनी पोस्ट अपडेट की।यह कहता है '[मॉड्यूलएक्सप्शन] वेबड्राइवर: वर्तमान यूआरएल खाली है, कोई पृष्ठ खोला नहीं गया है –

+0

मैं आपकी त्रुटि को दोहराने में सक्षम था और --ignore-ssl-error = true के साथ phantomjs चला रहा था, मेरे परीक्षण को पास करने में सक्षम था। केवल अंतर यह है कि मैं http_proxy और http_proxy_port का उपयोग नहीं कर रहा हूं, क्या आपने अपनी प्रॉक्सी जांच ली है? – MajicBob

उत्तर

1

हमें इस समस्या का कारण पता चला। ऐसा इसलिए था क्योंकि मैं एक ही समय में Selenium और phantomJS चला रहा था। (मैं कुछ ट्यूटोरियल से इस विचार आया।)

मैं

java -jar selenium.jar 

कर रहा था तो मैं इस के बाद से यह बंदरगाह 4444 में phantomjs चलाने में कोई त्रुटि का कारण बनता है (जाहिर है सेलेनियम यह उपयोग कर रहा है) मैं बजाय पोर्ट 5555 का उपयोग ।

phantomjs --webdriver=5555 --ignore-ssl-errors=true --ssl-protocol=any 

नोट: https/ssl स्वयं-हस्ताक्षरित पृष्ठों से जुड़े नहीं होने पर सब कुछ ठीक काम करता है।

हमें लगता है कि codeception पोर्ट 4444 को प्राथमिकता दें और मेरे phantomjs i.e. --ignore-ssl-errors=true --ssl-protocol=any में बताए गए किसी भी विकल्प को अनदेखा कर रहा है कि क्यों https/स्वयं-हस्ताक्षरित पृष्ठों पर जाने में विफल रहता है।

तो मूल रूप से, फिक्स केवल सेलेनियम के बिना अकेले फैंटोमज़ चला रहा था।

phantomjs --webdriver=4444 --ignore-ssl-errors=true --ssl-protocol=any 

धन्यवाद

संबंधित मुद्दे