繁体   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