在Python中最大化WebDriver(Selenium 2)

2024-10-01 02:18:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图编写一个简单的脚本,检查我是否有任何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')

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

我只懂一点python,现在在Mac OSX工作


Tags: fromimportcomtimedriverseleniumusername浏览器
3条回答

对于Chrome,应该在下一个包含修订版的构建中实现:http://code.google.com/p/chromedriver/issues/detail?id=65

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

driver.maximize_window()

这似乎工作良好-除非我使用铬。我不确定这是否是一个缺陷,因为它在IE9和Firefox中完美地工作。

编辑: 这是一个尚未在Chromedriver-= Link to issue =-中实现的特性

创建最大化窗口的方法非常简单:

from selenium.webdriver.chrome.options import Options

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

您也可以使用这个库来最大化窗口和更多内容,请参阅文档:https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html

相关问题 更多 >