2017-10-20 94 views
0

私はPythonとSeleniumを使用しています。私の問題は、ポップアウトするモーダルを切り替えることができず、そのボタンをクリックできないことです。Seleniumを使用してPythonでモーダルに切り替える方法

これは、モーダルの要素である:これは私のコードである

マイナスもちろんのURL

browser = webdriver.Chrome(executable_path="D:\\sasdsa\\automate\\chromedriver_win32\\chromedriver.exe") 
user_name = browser.find_element_by_xpath("//input[@id='username']") 
user_name.send_keys("test.employee") 

##Password 
pass_word = browser.find_element_by_xpath("//input[@id='password']") 
pass_word.send_keys("123") 

##log_in = browser.find_element_by_css_selector(".btn") 
log_in = browser.find_element_by_xpath("//button[@class='btn btn-sm btn-primary btn-block']") 
log_in.click() 

##punch 
#driver.find_element_by_id("//@id='product_view') 
#To open the modal 
punch_in = browser.find_element_by_xpath("//button[@class='btn btn-success btn-sm pull-right']") 
punch_in.click() 


#cant switch to the modal to access the button 
browser.switch_to_frame("product_view") 
punch_in2 = browser.find_element_by_xpath("//button[@id='save_me']") 
punch_in2.click() 
+0

なぜあなたは 'iframe'に関して' div'に切り替えようとしていますか? – Andersson

+0

どうすればいいですか?メインページからモーダルに切り替えようとしています... –

+0

とそのコードは何ですか? –

答えて

0

は、以下の行を削除し、それが動作するはずです良い。

browser.switch_to_frame("product_view") 

ここで特別な操作を行う必要はありません。このようなモーダルダイアログは、ページ上の他のHTMLと同様のHTMLです。他のものと同じようにアクセスします。

は、ダイアログを起動するボタンなどをクリックするとダイアログがそれ内の要素にアクセスする前に見えるようにするために、あなたはおそらくなど、待つように WebDriverWaitを追加する必要がありますことを...言った

関連する問題