2012-04-18 95 views
10

我正在尝试编写一个简单的脚本,用于检查是否有任何标记为SOMETHING的gmail电子邮件,然后打开一个firefox浏览器窗口到登录页面,然后转到其他位置。在Python中最大化WebDriver(Selenium 2)

下面是我在做什么:

from selenium import webdriver 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.common.exceptions import TimeoutException 
from selenium.webdriver.common.action_chains import ActionChains 
import time, imaplib 

Eusername = "[email protected]" 
Epassword = "password1" 

username = "username" 
password = "password2" 

imaps = imaplib.IMAP4_SSL('imap.gmail.com','993') 
imaps.login(Eusername,Epassword) 

imaps.select('SOMETHING') 
status, response = imaps.status('SOMETHING', "(UNSEEN)") 
unreadcount = int(response[0].split()[2].strip(').,]')) 

while unreadcount > 0: 
    driver = webdriver.Firefox() 
    driver.get('http://wwww.SomeURL.com/some_login.html') 
    time.sleep(3) 
    inputElement = driver.find_element_by_name("user") 
    inputElement.send_keys(username) 
    inputElement = driver.find_element_by_name("pw") 
    inputElement.send_keys(password) 
    inputElement.submit() 
    time.sleep(1) 
    driver.get('http://www.SomeURL.com/somethingelse.html') 
    imaps.select('SOMETHING') 
    typ ,data = imaps.search(None,'UnSeen') 
    imaps.store(data[0].replace(' ',','),'+FLAGS','\Seen') 

我已经花了几个小时的搜索,并没有发现一个解决方案,最大化浏览器窗口。在其他地方,我读过有一个windowMaximize()或window_maximize(),但一直无法让它们工作,因为我试过的每个配置都声称它不存在任何模块。

我只知道一点点巨蟒,并在Mac OSX上

+0

它很容易,你只需要写这行。 driver.maximize_window()有关示例的更多详细信息,请参阅此网址,我也已在此处回答:http://edu.yoursfriends.com/839/maximize-window-in-selenium-webdriver-using-python – 2016-02-01 05:09:50

回答

21

我以前从未使用过这个功能我的工作,所以我尝试过了。

driver.maximize_window() 

这似乎工作正常 - 除非我使用Chrome。我不确定这是否是一个缺陷,因为它在IE9和Firefox中完美无瑕。

编辑: 这是一个功能,它尚未在Chromedriver实施-= Link to issue =-

+1

get最新版本的chrome驱动程序,这可以在windows上工作 – HelloW 2013-09-12 17:46:45

+0

另一种方法是使用**'xdpyinfo | grep'维度:'**或**'xrandr | grep'*''**或**'inxi -G | egrep'分辨率:。* hz'-o' **然后**将其设置为'driver.set_window_size(“width”,“height”)' – erm3nda 2015-10-26 11:22:55

+1

使用Chrome的方式是:'options = webdriver.ChromeOptions )' 'options.add_argument(“ - start-maximized”)' 'driver = Chrome(chrome_options = options)' – HenryM 2016-12-19 10:56:49

0

即使这是老,知道你总是可以从系统获取值然后手动设置它是很酷的。这将适用于您使用的每个webdriver。

#!/usr/bin/env python 
#! -*- coding: utf-8 -*- 

import selenium 
from selenium import webdriver 

import os, sys, time 

import wx 

print "example with maximize_window()" 
nav = webdriver.Firefox() 
nav.maximize_window() 
time.sleep(3) 
nav.quit() 

print 'example with fixed set_window_size("1024", "768")' 
nav = webdriver.Firefox() 
nav.set_window_size("1024", "768") 
time.sleep(3) 
nav.quit() 

print "example grabbing size with wx (wxWidgets)" 
nav = webdriver.Firefox() 
app = wx.App(False) #wx.App(False) # the wx.App object must be created first. 
screenxy = wx.GetDisplaySize() # returns a tuple 
nav.set_window_size(screenxy[0], screenxy[1]) 
time.sleep(3) 
nav.quit() 


sys.exit(0)