Python 在Phantomjs+;硒

Python 在Phantomjs+;硒,python,cookies,selenium-webdriver,phantomjs,Python,Cookies,Selenium Webdriver,Phantomjs,我想在我的armv7板上登录amazons3(url:“”)。我使用了来自和selenium2.45.0的phantom2.0.1 我可以成功打开网站,但当我填写用户名和密码后进行“提交”时,网站会跳转到一个错误页面,显示“请启用Cookie继续”。所以我想知道如何在selenium中为phantomjs启用cookies。在我的ubuntu12.04中,使用合适版本的phantomjs,我可以成功 我的部分代码如下: def __init__(self,username,password,lo

我想在我的armv7板上登录amazons3(url:“”)。我使用了来自和selenium2.45.0的phantom2.0.1

我可以成功打开网站,但当我填写用户名和密码后进行“提交”时,网站会跳转到一个错误页面,显示“请启用Cookie继续”。所以我想知道如何在selenium中为phantomjs启用cookies。在我的ubuntu12.04中,使用合适版本的phantomjs,我可以成功

我的部分代码如下:

def __init__(self,username,password,login_url,width=1151,height=629):
    self.username = username
    self.password = password
    self.login_url = login_url
    dcap = dict(DesiredCapabilities.PHANTOMJS)  
    dcap["phantomjs.page.settings.userAgent"] = ( "Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/534.34 (KHTML, like Gecko) Phantomjs/2.0.1 Safari/534.34" )  
    self.driver = webdriver.PhantomJS(executable_path='/bin/phantomjs',desired_capabilities=dcap,service_args=['--ssl-protocol=any','--ignore-ssl-errors=true'])
    self.driver.set_window_size(width,height)

def _login_system(self):
    try:
        self.driver.get(self.login_url)
        print self.driver.page_source#I can success here
        WebDriverWait(self.driver, 30).until(lambda driver : self.driver.find_element_by_id("ap_email")).send_keys(self.username)
        WebDriverWait(self.driver, 30).until(lambda driver : self.driver.find_element_by_id("ap_password")).send_keys(self.password)
        WebDriverWait(self.driver, 30).until(lambda driver : self.driver.find_element_by_id("signInSubmit-input")).submit()#failed here and showing Please Enable Cookies to Continue
我找到了答案, amazon似乎不接受useragent中的“Phantomjs/(..*)”

失败:Mozilla/5.0(Macintosh;英特尔Mac OS X)AppleWebKit/534.34(KHTML,像Gecko)Phantomjs/2.0.1 Safari/534.34

OK:Mozilla/5.0(Macintosh;Intel Mac OS X 10.9;rv:36.0)Gecko/20100101 Firefox/36.0 WebKit

此外,我在useragent的末尾添加了“WebKit”,因为“undefined不是对象”()

更重要的是,我遇到了一个“raise BadStatusLine(line)”的问题(如这里:)。这可能是由于不匹配造成的 在selenium和phantomjs版本中,我使用phantomjs1.9.8(github中的piksel/phantomjs-raspberrypi)


对于编译问题,如果要在arm板上编译,最好使用swap扩展RAM。

PhantomJS支持cookie,并且默认情况下会启用cookie。不确定,为什么这是一个问题。也许那个二进制文件不好。@ArtjomB。谢谢你的回答。我试着用rootfs在我的armv7板和qemu上编译phantomjs,但一直失败,我搜索了这个问题,有人提到它可能内存不足。你对编译有什么建议吗?非常感谢。make[2]:***[generated/JSDOMWindow.cpp]Error 255 make[2]:离开目录
/phantomjs/src/qt/qtwebkit/Source/WebCore'make[1]:***[sub-DerivedSources-pri-make_first-order]Error 2 make[1]:离开目录
/phantomjs/src/qt/qtwebkit/Source/WebCore'make:**[sub-Source-WebCore-WebCore-WebCore-pro-make]错误2感谢您解决此问题!在亚马逊为我工作。