仕事のルーティンを自動化するためにseleniumを勉強しています。
まだまだ初心者で拙い部分だらけですが、よろしくお願いします。
書いたソースコード
python
1 2# -*- coding: UTF-8 -*- 3 4import time 5from selenium import webdriver 6from selenium.webdriver.common.keys import Keys 7from selenium.webdriver.chrome.options import Options 8 9f = open(r"C:\Users\user\Desktop\testtext.txt", "r") # IDファイルを読み込み 10id = f.read() # ファイルの中身を変数IDへ 11f.close() # ファイルを閉じる 12 13 14def main(): 15 16 options = Options() 17 options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application/chrome.exe" # chromeもしくはchromiumの実行ファイルを指定 18 #options.add_argument('--headless') # ヘッドレスモード(ブラウザを表示させないで実行) 19 #options.add_argument("--window-size=800,800") # ブラウザの表示サイズ 20 21 # ブラウザ起動(executable_pathにはwebdriverの場所を指定) 22 driver = webdriver.Chrome(executable_path= r"C:\Users\user\Anaconda3\Lib\site-packages\chromedriver_binary\chromedriver.exe", chrome_options=options) 23 24 # URLオープン 25 driver.get('http://urlxxx.com/login/?url') 26 time.sleep(1) # 待ち時間 27 28 # IDの入力 29 id = driver.find_element_by_name("loginId") #ID入力の要素 30 id.send_keys("xyz") #ID入力 31 32 # passの入力 33 password = driver.find_element_by_name("password") #pass入力の要素 34 password.send_keys("0000") #pass入力 35 36 time.sleep(1) 37 38 39 # ログインクリック 40 login_button = driver.find_element_by_name("go") 41 login_button.click() 42 43 time.sleep(2) 44 45 # 同意する 46 accept_button = driver.find_element_by_name("accept") 47 accept_button.click() 48 49#HOME展開完了 50 time.sleep(2) 51 mframe = driver.find_element_by_name("menu_frame") 52 driver.switch_to.frame(mframe) #menuframeに切り替え 53 time.sleep(2) 54 kanri = driver.find_element_by_link_text("ユーザー管理") 55 kanri.send_keys(Keys.RETURN) 56 57#ユーザー検索へ移動 58 time.sleep(3) 59 driver.get("urlxxx.com/home/menu") 60 61 driver.get("urlxxx.com/home/menu/idcheck") 62 time.sleep(5) 63 64#検索開始 65 sysid = driver.find_element_by_name("systemIds") #システムID入力フォームの要素 66 sysid.send_keys(id) #システムID入力 67 kensaku = driver.find_element_by_name("first") 68 kensaku.click() 69 70 71 72 73if __name__ == '__main__': 74 main() 75
f = open(r"C:\Users\user\Desktop\testtext.txt", "r") # IDファイルを読み込み
id = f.read() # ファイルの中身を変数idへ
f.close() # ファイルを閉じる
にて外部に保存したテキストファイルを読み込み変数idへ格納したのち
sysid = driver.find_element_by_name("systemIds") #システムID入力フォームの要素
sysid.send_keys(id) #システムID入力
↑ここでkeys()にidへ格納した値を入力する方法をご教示いただけますでしょうか。
sysid = driver.find_element_by_name("systemIds")←入力フィールドの要素
この入力フィールドに対して外部のテキストファイルのデータを入力したいと考えており、send_keysを利用しています。
外部のテキストファイルのデータを変数idに取り込んでいますが、上記の通りで実行すると
TypeError: object of type 'WebElement' has no len()
というエラーが出てしまいます。
sysid.send_keys(id)のidの値を手動で入力すると問題なく実行できますが、手動での実行ではなく外部からデータを取り込む事も含め自動で実行出来ればと考えております。
回答1件
あなたの回答
tips
プレビュー