[英]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)
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.