SOMETHINGというラベルの付いた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 = "[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()があることを読みましたが、試したすべての構成がどのモジュールにも存在しないと主張しているため、それらを機能させることができませんでした。
私は少しのpythonしか知らず、Mac OSXで働いています
私はこの機能を使ったことがないので、試してみました。
driver.maximize_window()
これは正常に動作するようです-私がChromeを使用している場合を除きます。 IE9とFirefoxでは問題なく動作するため、これが欠陥かどうかはわかりません。
編集:これはChromedriverにまだ実装されていない機能です -=問題へのリンク=-
最大化されたウィンドウを作成する本当に簡単な方法があります:
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 =
Chromeの場合、次のビルドに含まれ、改訂が含まれ、実装されます: http://code.google.com/p/chromedriver/issues/detail?id=65
これが古い場合でも、常にシステムから値を取得して手動で設定できることを知っておくのはクールです。これは、使用するすべての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)