2017-11-18 177 views
-2

因此,我爲我的CPS類製作了魔術鏡,並且我做了它,因此它將在全屏模式下使用瀏覽器選項卡進行多個顯示。對於其中一臺顯示器,我希望將嵌入式Google日曆調整爲適合我的27英寸顯示器(Google提供的日曆設置)。當我在Firefox中正常打開日曆時,該日曆正常工作,但是當使用硒進行Geckodriver打開Firefox時,日曆顯示,但處於通用狀態,無法對其進行編輯。我試圖在其他瀏覽器中打開.html頁面,它們都可以工作。這就是它的樣子: GeckoDriver DisplayFireFox Display。 該日曆涉及使用iframe標記,我試圖改變爲具有相同結果的對象標記。下面是IFRAME代碼:使用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> 

隨着我的Python打開每個HTML文件:

# 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-appropriate-new-current-close-reason-for-how-doi-i- do-x)對SO的期望是用戶提出問題不僅僅是研究來回答他們自己的問題,而且還分享研究,代碼嘗試和結果。這表明你已經花時間去嘗試幫助自己,它使我們避免重申明顯的答案,最重要的是它可以幫助你得到更具體和相關的答案!另請參閱:[問] – 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帳戶,以便它可以檢索您的日曆數據。

相關問題