2015-04-14 12 views
5

का उपयोग करते समय फ़ैंटॉमजेएस नहीं करता है, अब मैं अपनी समस्या का हल ढूंढने के लिए काफी समय से देख रहा हूं, उम्मीद है कि कोई यहां मदद कर सकता है जो कुछ मदद कर सकता है।फ़ायरफ़ॉक्स तत्व देखता है जहां सेलेनियम-वेबड्राइवर

मेरे पास एक वेबसाइट पर कनेक्ट करने के लिए फ़ायरफ़ॉक्स ड्राइवर के साथ काम कर रहे एक सेमेनियम स्क्रिप्ट (पायथन में) है। फ़ैंटॉमजेएस को ड्राइवर के रूप में उपयोग करते समय, यह अब और काम नहीं करता है।

फॉर्म जावास्क्रिप्ट द्वारा जेनरेट किया गया है और एक https वेबसाइट पर है।

<script language="JavaScript1.2"> 
document.writeln("<input class=\"textform\" type=\"text\" id=\"user\" name=\"user\" size=\"" + size + "\" tabindex=1 onFocus=\"hadFocus(true)\">"); 
</script> 

यहाँ है स्क्रिप्ट की तलाश में यह का हिस्सा: (फ़ायरफ़ॉक्स नहीं बल्कि PhantomJS पर काम कर)

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
import time 

driver = webdriver.Firefox() 

driver.get([MY URL]) 

print driver.page_source 

driver.find_element_by_id("user").clear() 
driver.find_element_by_id("user").send_keys([MY USER ID]) 
driver.find_element_by_id("pass").clear() 
driver.find_element_by_id("pass").send_keys([MY PASS]) 
driver.find_element_by_name("login_btn").click() 

html_source = driver.page_source 

print html_source 

driver.close() 

यहाँ और त्रुटि मैं मिलता है यहाँ उपयोगकर्ता इनपुट के कोड है: <html><head></head><body></body></html>

012:

selenium.common.exceptions.NoSuchElementException 

अगर मैं सिर्फ पेज तक पहुंचने के बाद page_source प्रिंट, फायरफॉक्स सही स्रोत कोड है, जहां PhantomJS केवल पता चलता

क्या आप ऐसा कुछ भी सोच सकते हैं जो इसका कारण हो सकता है?

+1

क्या आप हमें केवल नमूना कोड नमूना दिखा सकते हैं? क्या यह पाइथन या जावा है जिसका आप उपयोग कर रहे हैं? मुझे नहीं लगता कि सेलेनियम के लिए जावास्क्रिप्ट बाइंडिंग हैं। –

+0

त्रुटि का मतलब है कि निकालने के लिए कोई टैग/एस नहीं है। आप 'page_source' लिख सकते हैं और टैग में मौजूद होने पर इसे मैन्युअल रूप से जांच सकते हैं। – nickanor

+0

मैंने कोड नमूने के लिए संपादित किया है। मैंने नाम और xpath द्वारा तत्व ढूंढने का भी प्रयास किया। दोनों फ़ायरफ़ॉक्स के साथ काम करते थे लेकिन फैंटॉमजेएस नहीं। (पायथन पर) – zigoingoin

उत्तर

5

मैं Artjom बी जवाब देने के लिए मेरी समस्या का समाधान कर लिया धन्यवाद:

बस कोड में बदलने के लिए:

driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true']) 

यह SSL प्रमाणपत्र मुझे लगता है की वजह से था।

+1

आप संदर्भ के लिए एक लिंक प्रदान कर सकते हैं जहां से आपको वह जवाब मिला। –

+0

लिंक कहां है? – Max

+0

कुछ हद तक स्पर्शपूर्ण: यदि आप एक हेडलेस फ़ैंटॉमजेएस वेबड्राइवर चला रहे हैं, तो सर्वर प्रारंभ करते समय यह आदेश फेंक दें: यानी। '' 'phantomjs --webdriver = 8643 --ignore-ssl-error = true''' मेरे लिए, यह हल किया गया मिंक एलिमेंट नॉटफाउंड अपवाद त्रुटियां जो मैं स्वयं हस्ताक्षरित प्रमाणपत्र के साथ एक https बेस यूआरएल के खिलाफ बेथ परीक्षण चला रहा था। – aaronbauman

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