2017-02-17 68 views
1

您好,我正在嘗試製作一個自動發佈在blogspot中的應用程序。前一陣子我可以想出Selenium。我的問題是點擊上傳圖片按鈕打開一個新的框架。我試圖切換一個框架,但每次頁面打開時框架名稱都會更改。唯一不變的是類名中的框架。頁面的iframe字段在頁面首次打開時似乎被禁用。python selenium hidden frame

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
import time 
#from bs4 import BeautifulSoup  

delay=10 
from selenium import webdriver 
driver = webdriver.Chrome("C:\\Python34\\Scripts\\chromedriver.exe") 
driver.get('https://www.blogger.com/blogger.g?blogID=blogID#allposts/src=sidebar') 
wait = WebDriverWait(driver, 10) 

def start(): 
    email=wait.until(lambda driver:driver.find_element_by_id('Email')) 
    email.clear() 
    email.send_keys('gmailaccound') 
    ileri=wait.until(lambda driver:driver.find_element_by_id('next')) 
    ileri.click() 
# WebDriverWait(driver, delay).until(EC.presence_of_element_located(driver.find_element_by_id('next'))) 

    password=wait.until(lambda driver:driver.find_element_by_id('Passwd')) 
    password.clear() 
    password.send_keys('password') 
    ileri2=wait.until(lambda driver:driver.find_element_by_id('signIn')) 
    ileri2.click() 

    yeni_yayin=wait.until(lambda driver:driver.find_element_by_class_name('OYKEW4D-i-x')) 
    yeni_yayin.click() 
    time.sleep(5)     
    resim_buton=wait.until(lambda driver:driver.find_element_by_css_selector('.tr-image').click()) 
    time.sleep(5) 


    iframe=driver.find_element_by_class_name('picker-frame') 

    driver.switch_to_frame(iframe)  

iframe screenshot

回答

0

你可以得到iframe的name然後切換通過名字來IFRAME,看到以下內容:

if_name = driver.find_element_by_css_selector("iframe[class='picker-frame']").get_attribute("name") 
driver.switch_to_frame(if_name) 
+0

selenium.common.exceptions.WebDriverException:消息:未知的錯誤:元素在點(635,132)處不可點擊。其他元素會收到點擊:

+0

您正嘗試點擊隱藏元素檢查您的日誌:'hidden =「true」 –