Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中最大化WebDriver(Selenium 2)_Python_Selenium_Selenium Webdriver_Webdriver_Maximize - Fatal编程技术网

在Python中最大化WebDriver(Selenium 2)

在Python中最大化WebDriver(Selenium 2),python,selenium,selenium-webdriver,webdriver,maximize,Python,Selenium,Selenium Webdriver,Webdriver,Maximize,我正在尝试编写一个简单的脚本,检查我是否有任何标记为某物的gmail电子邮件,然后打开一个firefox浏览器窗口进入登录页面,然后进入其他页面 以下是我正在做的: from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.common.exceptions import TimeoutException from selenium.webdriver.

我正在尝试编写一个简单的脚本,检查我是否有任何标记为某物的gmail电子邮件,然后打开一个firefox浏览器窗口进入登录页面,然后进入其他页面

以下是我正在做的:

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 = "someone@gmail.com"
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(),但由于我尝试过的每个配置都声称它不存在于任何模块中,因此无法让它们工作


我只懂一点python,我在MacOSX中工作,我以前从未使用过这个功能,所以我尝试过

driver.maximize_window()
这似乎工作得很好-除非我使用的是Chrome。我不确定这是否是一个缺陷,因为它在IE9和Firefox中工作得完美无缺

编辑: 这是一个尚未在Chromedriver中实现的功能

编辑(8年后):
显然,这是在Linux和Windows上的Chrome中工作的-所以,耶!我还没有测试过它,但我很乐观,因为从最初的答案提供到现在已经将近十年了。

对于Chrome,应该在下一个版本中,包括修订版,实现:

即使这是旧版本,知道你总是可以从系统中获取值,然后手动设置也是很酷的。这将适用于您使用的每个Web驱动程序

#!/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)

有一种非常简单的方法可以创建最大化的窗口:

from selenium.webdriver.chrome.options import Options

chrome_options = Options()
# maximized window
chrome_options.add_argument("--start-maximized")

您还可以使用此库来最大化窗口等,请参阅文档:

我用这一行来解决它

self.driver = webdriver.Chrome()
self.driver.maximize_window()

获取最新版本的chrome驱动程序并在Windows上运行另一种方法是使用
xdpyinfo | grep'尺寸从系统中获取屏幕分辨率:'
xrandr | grep'*'
inxi-G | egrep'分辨率:.*hz'-o
,然后使用
驱动程序进行设置。设置窗口大小(“宽度”、“高度”)
使用Chrome的方法是:
options=webdriver.ChromeOptions()
options.add_参数(“--start maximized”)
driver=Chrome(Chrome\u options=options)
请更新您的答案,该功能现在在chrome Linux和windows上都可以使用。这应该是一个评论,而不是一个答案。这很简单,你只需要写这一行。driver.maximize_window()有关示例的更多详细信息,请参考此url,我已经在这里回答了: