2017-09-16 49 views
6

因此,可能最重要的是,我使用的是c9。它是雲中的IDE,因此當試圖將Chrome或Firefox與Watir一起使用時,給我帶來了很多麻煩,因爲我無法寫出Chrome或Firefox瀏覽器的路徑。我也嘗試了各種可以找到的等待方法,但沒有一個能夠工作。Watir在訪問網頁後試圖找到任何元素時超時

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 => 「格」}>

我想解決這個問題的方法不能從史密斯網站刮數據是使用鉻瀏覽器,但我得到錯誤「無法連接到chromedriver 127.0.0.1:9515」

+0

它在firefox中正常工作,您不必使用wait_until()方法,因爲它會自動等待:exist:present:enabled。請不要使用firefox的geckodriver,使用傳統的Firefox,它的工作非常正常。 – RAJ

+2

不要使用傳統的Firefox,除非你絕對必須;在這一點上,geckodriver已接近完成功能。在即將到來的Selenium 4中,Legacy Firefox可能不會成爲一種選擇.Chrome Driver目前得到最好的支持,請查看'Watir :: Browser.new:chrome,headless:true'作爲phantomjs的替代品。它速度更快,並且phantomjs已被棄用。 – titusfortner

+0

@titusfortner你知道firefox恢復它在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 

,然後再試一次

(你甚至可以運行容器甚至VPS或其他REM te服務器,然後連接到它)

相關問題