pythonでブラウザ操作を自動化しようとしていたのですが、途中でダイアログを操作しなければならない場所が出てきました。
一つめのダイアログで次へのボタンを押す→そのままダイアログ上で必要なところを入れて保存を押すという形です。
どうしたらこのような形の操作ができるのでしょうか?
[やってみたコード]
python
1button_text = "次へ" 2 3for button in buttons: 4 messagebox.showinfo(button.text) 5 if button.text == button_text: 6 button.click() 7 break 8
→ブラウザ上のボタンのみ取得された
python
1Alert(browser).accept()
→エラーは起きませんでしたがダイアログ自体も動きませんでした。
python
1pg.press('enter')#エンターキーを押す
→ダイアログ自体がエンターキーでは動かないタイプでした
これがダイアログ一つ目です。
下の次へを押したいです。
[次へ]のボタンのソースコード:
python
1<button class="slds-button slds-button--neutral slds-button slds-button_brand uiButton" aria-live="off" type="button" data-aura-rendered-by="317:1574;a" data-aura-class="uiButton"><!--render facet: 318:1574;a--><span class=" label bBody" dir="ltr" data-aura-rendered-by="320:1574;a">次へ</span><!--render facet: 322:1574;a--></button> 2
こちらは二つ目のダイアログのみを切り出したものです。こちらはテキストボックスに文字を挿入したいです。
(こちらもダイアログ一つ目と同じように表示されています)
全体的なコードは以下です。
python
1import subprocess 2import webbrowser 3from selenium import webdriver as wd 4from selenium.webdriver.common.by import By 5from selenium.webdriver.support.ui import WebDriverWait 6from selenium.webdriver.support import expected_conditions as EC 7from tkinter import messagebox 8from selenium.webdriver.common.alert import Alert 9 10import pyautogui as pg 11import time 12 13url = 'https://sse-webtc2.force.com/PortalLogin?startURL=%2FHomePc' 14brouser = r'C:\Program Files\Mozilla Firefox\firefox.exe' 15 16browser = wd.Firefox() 17browser.implicitly_wait(10) # seconds 18browser.get(url) 19browser.find_element_by_name("j_id0:loginForm:userid").send_keys("ID")#IDを入力 20browser.find_element_by_name("j_id0:loginForm:password").send_keys("パスワード")#パスワードを入力 21time.sleep(5)#5秒待つ 22pg.press('enter')#エンターキーを押す 23time.sleep(20)#20秒待つ 24browser.get("サイトURL") 25WebDriverWait(browser, 15).until(EC.presence_of_all_elements_located) 26browser.get("サイトURL2") 27WebDriverWait(browser, 15).until(EC.presence_of_all_elements_located) 28browser.find_element_by_xpath('//*[@title="新規"]').click() 29WebDriverWait(browser, 15).until(EC.presence_of_all_elements_located) 30buttons = browser.find_elements_by_tag_name("button")
お知恵をお貸しください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー