2017-11-18 7 views
-2

私はCPSクラス用のMagic Mirrorを作成しています。ブラウザのタブをフルスクリーンモードで使用して複数のディスプレイを表示するようにしました。いずれかのディスプレイでは、27インチモニター(Googleがカレンダー設定から提供)に合わせて埋め込まれたGoogleカレンダーを調整したいと思っていました。カレンダーはFirefoxで普通に開くと動作しますが、Firefoxがセレンを使ってgeckodriverで開かれているときはカレンダーが表示されますが、一般的な状態では編集できません。私は他のブラウザで.htmlページを開こうとしましたが、それらはすべて動作します。これは次のようになります。 GeckoDriver DisplayFireFox Display カレンダーにはiframeタグを使用しています。これは同じ結果を持つオブジェクトタグに変更しようとしました。ここでのiframeコードは次のとおりです。各htmlファイルを開くに私はPythonと一緒にgeckodriverでブラウザを開くときに埋め込みGoogleカレンダーを編集できない

<iframe src="https://calendar.google.com/calendar/embed?showTitle=0&amp;showDate=0&amp;showPrint=0&amp;showTabs=0&amp; 
showCalendars=0&amp;height=1810&amp;wkst=1&amp;bgcolor=%23000000&amp;src=tvanderlinden8%40gmail.com&amp;color=%2329527A&amp; 
src=%23contacts%40group.v.calendar.google.com&amp;color=%2329527A&amp;src=en.usa%23holiday%40group.v.calendar.google.com&amp; 
color=%2329527A&amp;ctz=America%2FNew_York" style="border-width:0"width="1000" height="1800" frameborder="0" scrolling="no"></iframe> 

# Imports 
from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

# Create new browser and open all display tabs 

# Open Firefox dir 
driver = webdriver.Firefox() 

# Open google tab 
driver.get('http://google.com') 
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') 

# Open MagicMirror.html, MagicMirror2.html, and MagicMirror3.html (all 3 displays) 
driver.get('/home/pi/Desktop/MagicMirror/MagicMirror.html') 
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') 
driver.get('/home/pi/Desktop/MagicMirror/MagicMirror2.html') 
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't') 
driver.get('/home/pi/Desktop/MagicMirror/MagicMirror3.html') 

# Close google tab 
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) 
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 'w') 
# Set webpage to full screen 
driver.find_element_by_tag_name('body').send_keys(Keys.F11) 

# Variable used to determine if display is showing 1st or 3rd display 
disNum = 1 

# Input to change display 
while(True): 
    display = int(input("Please select a display: ")) 

    # Moves right a display unless it is at the last display 
    if (display == 1 and disNum != 3): 
     driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.TAB) 
     disNum += 1 

    # Moves left a display unless it is at the first display 
    if (display == 2 and disNum != 1): 
     driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + Keys.SHIFT + Keys.TAB) 
     disNum -= 1 

それが邪魔に「仕事」を行いますので、エラーが発生していません。それだけで私がそれを必要とする方法では動作しません。

+1

参照:[Xはどのように行うのですか?](https://meta.stackoverflow.com/questions/253069/whats-the--new-current-close-reason-for-how-do-i- do-x)SOに関する期待は、質問するユーザーが自分の質問に答えるだけでなく、その調査、コードの試行、結果を共有することです。これは、時間をかけて自分自身を助けようとしていることを示しています。明白な回答を繰り返さないようにしてくれています。そして、より具体的で適切な答えを得ることができます。参考:[ask] – JeffC

+0

コードトライアル、エラースタックトレース、HTMLを共有できますか? – DebanjanB

答えて

0

私は完璧に動作するソリューションを見つけました。

<object data="https://calendar.google.com/calendar/embed?showTitle=0&amp;showNav=0&amp; 
showDate=0&amp;showPrint=0&amp;showTabs=0&amp;showCalendars=0&amp;showTz=0&amp;height=1400&amp; 
wkst=1&amp;bgcolor=%23000000&amp;src=tvanderlinden8%40gmail.com&amp;color=%2329527A&amp; 
data=%23contacts%40group.v.calendar.google.com&amp;color=%2329527A&amp; 
src=en.usa%23holiday%40group.v.calendar.google.com&amp;color=%2329527A&amp; 
ctz=America%2FNew_York" style="border-width:0" width="1000" height="1820"></object> 

あなたはデータ「にのsrcの 『すべてを変更することとしている』が、あなたはほんの始まりと%のため23contacts%を変更した場合...に私が見つかりました。 『データ』の問題を修正します。カレンダーデータを取得できるように、Googleアカウントにもログインしていることを確認してください。

関連する問題