2012-04-18 91 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)