簡體   English   中英

使用Splinter + PhantomJS(Python)訪問表單

[英]Accessing a form with Splinter + PhantomJS (Python)

我正在嘗試在此站點上填寫用戶名和密碼框: http : //www.youwager.eu/welcome/

這是相關的html:

<input type="text" class="form-control" name="customerid" id="customerid" placeholder="Account Number">

使用firefox時,可以使用一個簡單的browser.fill('customerid',login),但是我無法讓phantomJS與該元素進行交互。 它引發以下錯誤:

<class 'selenium.common.exceptions.InvalidElementStateException'> , InvalidElementStateException()

重現此問題的代碼:

from splinter import Browser
browser=Browser('phantomjs') #=Browser() uses firefox, and works
browser.visit('http://www.youwager.eu/welcome')
browser.fill('customerid', login)

使用Splinter 0.5.4,Selenium 2.43.0,PhantomJS 1.9.7.0

問題在於,PhantomJS默認情況下的視口大小為400x300,並且頁面將其布局更改為較小的寬度,在該寬度中該字段不可見,並且因為該字段無法通過WebDriver API進行交互。

您有兩個選擇。 您可以更改腳本以考慮到媒體查詢而采用不同的頁面布局,或者通過代碼更改瀏覽器窗口的大小。

使用Selenium可以做到這一點(從此處開始 ):

driver.set_window_size(1234, 987)

據代碼( 12 ),似乎可以做到這一點是這樣的:

from splinter import Browser
browser=Browser('phantomjs')
browser.driver.set_window_size(1234, 987)
browser.visit('http://www.youwager.eu/welcome')
browser.fill('customerid', login)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM