2017-09-16 6 views
6

पर जाने के बाद किसी भी तत्व को खोजने का प्रयास करते समय वॉटर समय समाप्त हो रहा है तो संभवतया इसका प्रस्ताव देने के लिए सबसे महत्वपूर्ण बात यह है कि मैं c9 का उपयोग कर रहा हूं। यह क्लाउड में एक आईडीई है और इसलिए मुझे वॉटर के साथ क्रोम या फ़ायरफ़ॉक्स का उपयोग करने की कोशिश करते समय मुझे बहुत परेशानी हो रही है, क्योंकि मैं क्रोम या फ़ायरफ़ॉक्स ब्राउज़र के लिए पथ नहीं लिख सकता। मैंने प्रतीक्षा विधियों के हर बदलाव की भी कोशिश की है जो मुझे मिल सकती है लेकिन उनमें से कोई भी काम नहीं करता है।वेबपेज

def save 
    require 'watir' 
    require 'phantomjs' 

    @browser = Watir::Browser.new :phantomjs 
    @browser.goto "https://kroger.softcoin.com/programs/kroger/digital_coupons/?origin=DigitalCoupons&banner=Smiths#contentBox" 

    @browser.div(id: "contentBox").wait_until(&:present?).text 
    @products = @browser.divs 

end 

त्रुटि

30 सेकंड के बाद का समय समाप्त हो, # पर "contentBox" सच हालत के लिए इंतज़ार कर,: TAG_NAME => "div"}>

तरह से मैं की इस समस्या को दूर करना चाहते हैं स्मिथस वेबसाइट से डेटा को स्क्रैप करने में सक्षम नहीं होने के कारण क्रोम ब्राउजर का उपयोग करना है, लेकिन मुझे त्रुटि मिलती है "क्रोमड्राइवर 127.0.0.1:9515"

+0

यह फ़ायरफ़ॉक्स में ठीक से काम करता है और क्योंकि यह स्वतः के लिए इंतजार कर रहा है आप wait_until() विधि का उपयोग करने की जरूरत नहीं: मौजूद हैं: वर्तमान: सक्षम होना चाहिए। कृपया फ़ायरफ़ॉक्स के लिए geckodriver का उपयोग न करें, विरासत फ़ायरफ़ॉक्स का उपयोग करें, यह बहुत ठीक से काम करता है। – RAJ

+2

विरासत फ़ायरफ़ॉक्स का उपयोग न करें जबतक कि आपको बिल्कुल नहीं करना चाहिए; geckodriver इस बिंदु पर पूरा सुविधा के करीब है। विरासत फ़ायरफ़ॉक्स संभावना है, आगामी सेलेनियम 4. क्रोम चालक में एक विकल्प सबसे अच्छा अभी समर्थित है नहीं होगा 'Watir :: Browser.new की जाँच: phantomjs के लिए एक स्थानापन्न के रूप TRUE': क्रोम, बिना सिर। यह बहुत तेज है और phantomjs को बहिष्कृत किया जा रहा है। – titusfortner

+0

@titusfortner फ़ायरफ़ॉक्स यह पुनर्स्थापित करता है क्या तुम जानते हो 52 esp संस्करण में सेलेनियम के लिए समर्थन है? – RAJ

उत्तर

2

मुझे एक समान समस्या थी और webdrivers मणि को स्थापित करने में त्रुटि मिली समस्या

$gem install webdrivers

+0

कोशिश की, लेकिन काम नहीं किया। – ChrisWilson

3

मैं इसी तरह की समस्या थी और मैं कमांड के साथ

# docker-compose.yml file 
version: '2' 
services: 
    selenium: 
    image: selenium/standalone-chrome 
    ports: 
     - "4444:4444" 
    restart: always 
    volumes: 
     - "${PWD}/spec:${PWD}/spec" # I exposed `spec` dir to cover code with specs 
     - /dev/shm:/dev/shm 


# test.rb file 
@browser = Watir::Browser.new(
    :remote, 
    url: 'http://localhost:4444/wd/hub' 
) 

भागो कंटेनर सेलेनियम के साथ डोकर कंटेनर स्थापित करके इसका समाधान नहीं:

docker run -it -d -P -p 4444:4444 -v `pwd`/spec:`pwd`/spec selenium/standalone-chrome 

और पुन: प्रयास करें

(इसके अलावा आप वीपीएस या अन्य रेमो पर भी कंटेनर चला सकते हैं ते सर्वर, और फिर इसे करने के लिए कनेक्ट)

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