2017-12-02 8 views
0

ローカルディスクからセレンを使用してGoogleドライブにファイルをアップロードするためのスクリプトを作成しようとしています。私はログインに成功し、Googleドライブのデスクトップ版で新しいボタンをクリックするまで成功ですが、新しい小さなウィンドウ(「新しい」ボタンを押した後に表示されるウィンドウ)の下に表示されるオプションを選択できません。セレンの小さなポップウィンドウに表示されるオプションをクリックする方法は?

マイコードまで今:

#!/usr/bin/python 
    from selenium import webdriver 
    import time 
    from selenium.webdriver.common.keys import Keys 

    browser=webdriver.Firefox() 
    #gdURL='https://drive.google.com' 
    gdURL='https://accounts.google.com/ServiceLogin?service=wise&passive=true& continue=http%3A%2F%2Fdrive.google.com%2F%3Futm_source%3Den_US& utm_medium=button&utm_campaign=web&utm_content=gotodrive&usp=gtd&ltmpl=drive' 
    browser.get(gdURL) 
    def idIn(email): 
     gId=browser.find_element_by_id('identifierId') 
     gId.send_keys(email) 
     gId.send_keys(Keys.ENTER) 
     time.sleep(10) 
    def passIn(passwd): 
     gPass=browser.find_element_by_name('password') 
     gPass.send_keys(passwd) 
     gPass.send_keys(Keys.ENTER) 
     time.sleep(30) 
    if browser.find_element_by_id('identifierId'): 
     idIn('myemail') 
     passIn('mypassword') 
    #if browser.find_element_by_name('password'): 
    # passIn('mypassword') 
    btn=browser.find_elements_by_tag_name('button') 
    btn[4].click() 

答えて

0

セレンでアラートを処理する方法があります - driver.switch_to_alert() このドキュメントはこれが役立つことhttps://seleniumhq.github.io/selenium/docs/api/py/webdriver/selenium.webdriver.common.alert.html#module-selenium.webdriver.common.alert

+0

私はそれがアラートウィンドウとは関係ないと思う。私はちょうどメインウィンドウに固執し、ファイルをアップロードするように促すウィンドウに対処したい – rcShahi

+0

あなたが知っている限り、あなたはファイルのプロンプトウィンドウをアップロードするためのネイティブスイッチを持っていない、あなたは確認するために同じスイッチを使用することができますテキストをクリックし、使用可能なボタンをクリックします。 –

0

あなたを助ける必要があります - あなたは、新しいブラウザインスタンスに切り替える必要がありウィンドウハンドルを使用します。私はこれはWindowsシステムでのみ動作するかどうかはわかりません。

謝罪、以下のコードは、Javaである:

// Store the current window handle 
String winHandleBefore = driver.getWindowHandle(); 
// Perform the click operation that opens new window 
// Switch to new window opened 
for(String winHandle : driver.getWindowHandles()){ 
driver.switchTo().window(winHandle); } 
// Perform the actions on new window 
// Close the new window, if that window no more required driver.close(); 
// Switch back to original browser (first window) 
driver.switchTo().window(winHandleBefore); 
//continue with original browser (first window) 

がこの回答hereのソースの記事を参照してください。

関連する問題