1

コードはwebdriver.Firefoxで動作しますが、webdriver.PhantomJSでは動作しないのはなぜですか?PhantomJSとFirefoxを使用したブラウザの自動化、さまざまなブラウザのサポート

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

driver = webdriver.PhantomJS() # why not? 
# driver.set_window_size(1400, 1050) 

# driver = webdriver.Firefox() # Firefox 45, works correctly 

driver.get("https://www.rec-registry.gov.au/rec-registry/app/public/lgc-register") 
driver.find_elements_by_tag_name('button')[4].click() # status 
# show the needed elements for the next action, 
# enter(open the door) to the div.ms-drop area 
driver.find_elements_by_class_name('ms-drop')[4].find_element_by_css_selector('ul>li:nth-child(12)').click() # registered 
driver.find_element_by_id('search-submit').send_keys(Keys.RETURN) # search 

driver.save_screenshot('lgc1.png') 
+0

をあなたはphantomjsでは動作しませんどういう意味ですか?例外はありますか?あなたは 'driver.find_element_by_id( 'search-submit')の代わりに' driver.find_element_by_id( 'search-submit')を使っていないのですか?send_keys(Keys.RETURN) '.. ?? –

+0

@SaurabhGaur Phantomjsの場合、例外なく、div.ms-dropで終了しますが、Firefoxでは、必要なデータを持つhtmlテーブルを取得します。 その後、phantomjsはチェックボックスと検索ボタンをクリックする必要があります。 – lvcpp

+0

そしてなぜあなたは 'send_keys(Keys.RET URN)'を使っていますか? –

答えて

1

あなたは以下のように代わりにsend_keys(Keys.RETURN)のClick目的.click()を使用してみてください。

driver.find_element_by_id('search-submit').click() 
+1

それでは、私はPhantomjsの空のテーブルを得てくれてありがとう。 と インポート時 time.sleep後(3) 私はあなたの代わりにtime.sleep' 'のクリック後に存在するテーブルまで待機する' WebDriverWait'を使用してみてくださいお勧めします最良の方法のために必要なデータに – lvcpp

+0

を取得。.. 。 –

+0

私は** WebDriverWait **と** implicitly_wait **の前に、 を使用しようとしましたが、ここで以前は動作しません: ... 'from selenium.webdriver.support.ui import WebDriverWait' 'time.sleep(3)#> 2は、 は'#driver.implicitly_wait(30)works'ない> 30、#は '#WebDriverWait(ドライバ、30)#> 30、WebDrive – lvcpp

関連する問題