質問編集履歴

3

ソースを追加しました。

2020/02/17 09:58

投稿

shiro55
shiro55

スコア9

test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,10 @@
8
8
 
9
9
 
10
10
 
11
+ ```python
12
+
13
+
14
+
11
15
  # -*- coding: UTF-8 -*-
12
16
 
13
17
 
@@ -142,6 +146,12 @@
142
146
 
143
147
  kensaku.click()
144
148
 
149
+
150
+
151
+
152
+
153
+
154
+
145
155
 
146
156
 
147
157
  if __name__ == '__main__':
@@ -150,6 +160,10 @@
150
160
 
151
161
 
152
162
 
163
+ ```
164
+
165
+
166
+
153
167
 
154
168
 
155
169
  f = open(r"C:\Users\user\Desktop\testtext.txt", "r") # IDファイルを読み込み

2

ソースを追加しました。

2020/02/17 09:58

投稿

shiro55
shiro55

スコア9

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,154 @@
1
1
  仕事のルーティンを自動化するためにseleniumを勉強しています。
2
2
 
3
3
  まだまだ初心者で拙い部分だらけですが、よろしくお願いします。
4
+
5
+
6
+
7
+ 書いたソースコード
8
+
9
+
10
+
11
+ # -*- coding: UTF-8 -*-
12
+
13
+
14
+
15
+ import time
16
+
17
+ from selenium import webdriver
18
+
19
+ from selenium.webdriver.common.keys import Keys
20
+
21
+ from selenium.webdriver.chrome.options import Options
22
+
23
+
24
+
25
+ f = open(r"C:\Users\user\Desktop\testtext.txt", "r") # IDファイルを読み込み
26
+
27
+ id = f.read() # ファイルの中身を変数IDへ
28
+
29
+ f.close() # ファイルを閉じる
30
+
31
+
32
+
33
+
34
+
35
+ def main():
36
+
37
+
38
+
39
+ options = Options()
40
+
41
+ options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application/chrome.exe" # chromeもしくはchromiumの実行ファイルを指定
42
+
43
+ #options.add_argument('--headless') # ヘッドレスモード(ブラウザを表示させないで実行)
44
+
45
+ #options.add_argument("--window-size=800,800") # ブラウザの表示サイズ
46
+
47
+
48
+
49
+ # ブラウザ起動(executable_pathにはwebdriverの場所を指定)
50
+
51
+ driver = webdriver.Chrome(executable_path= r"C:\Users\user\Anaconda3\Lib\site-packages\chromedriver_binary\chromedriver.exe", chrome_options=options)
52
+
53
+
54
+
55
+ # URLオープン
56
+
57
+ driver.get('http://urlxxx.com/login/?url')
58
+
59
+ time.sleep(1) # 待ち時間
60
+
61
+
62
+
63
+ # IDの入力
64
+
65
+ id = driver.find_element_by_name("loginId") #ID入力の要素
66
+
67
+ id.send_keys("xyz") #ID入力
68
+
69
+
70
+
71
+ # passの入力
72
+
73
+ password = driver.find_element_by_name("password") #pass入力の要素
74
+
75
+ password.send_keys("0000") #pass入力
76
+
77
+
78
+
79
+ time.sleep(1)
80
+
81
+
82
+
83
+
84
+
85
+ # ログインクリック
86
+
87
+ login_button = driver.find_element_by_name("go")
88
+
89
+ login_button.click()
90
+
91
+
92
+
93
+ time.sleep(2)
94
+
95
+
96
+
97
+ # 同意する
98
+
99
+ accept_button = driver.find_element_by_name("accept")
100
+
101
+ accept_button.click()
102
+
103
+
104
+
105
+ #HOME展開完了
106
+
107
+ time.sleep(2)
108
+
109
+ mframe = driver.find_element_by_name("menu_frame")
110
+
111
+ driver.switch_to.frame(mframe) #menuframeに切り替え
112
+
113
+ time.sleep(2)
114
+
115
+ kanri = driver.find_element_by_link_text("ユーザー管理")
116
+
117
+ kanri.send_keys(Keys.RETURN)
118
+
119
+
120
+
121
+ #ユーザー検索へ移動
122
+
123
+ time.sleep(3)
124
+
125
+ driver.get("urlxxx.com/home/menu")
126
+
127
+
128
+
129
+ driver.get("urlxxx.com/home/menu/idcheck")
130
+
131
+ time.sleep(5)
132
+
133
+
134
+
135
+ #検索開始
136
+
137
+ sysid = driver.find_element_by_name("systemIds") #システムID入力フォームの要素
138
+
139
+ sysid.send_keys(id) #システムID入力
140
+
141
+ kensaku = driver.find_element_by_name("first")
142
+
143
+ kensaku.click()
144
+
145
+
146
+
147
+ if __name__ == '__main__':
148
+
149
+ main()
150
+
151
+
4
152
 
5
153
 
6
154
 

1

したい事を具体的に加筆しました

2020/02/17 09:53

投稿

shiro55
shiro55

スコア9

test CHANGED
File without changes
test CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
 
14
14
 
15
- にて外部ファイルを読み込み変数idへ格納したのち
15
+ にて外部に保存したテキストファイルを読み込み変数idへ格納したのち
16
16
 
17
17
 
18
18
 
@@ -23,3 +23,17 @@
23
23
 
24
24
 
25
25
  ↑ここでkeys()にidへ格納した値を入力する方法をご教示いただけますでしょうか。
26
+
27
+
28
+
29
+ sysid = driver.find_element_by_name("systemIds")←入力フィールドの要素
30
+
31
+ この入力フィールドに対して外部のテキストファイルのデータを入力したいと考えており、send_keysを利用しています。
32
+
33
+ 外部のテキストファイルのデータを変数idに取り込んでいますが、上記の通りで実行すると
34
+
35
+ TypeError: object of type 'WebElement' has no len()
36
+
37
+ というエラーが出てしまいます。
38
+
39
+ sysid.send_keys(id)のidの値を手動で入力すると問題なく実行できますが、手動での実行ではなく外部からデータを取り込む事も含め自動で実行出来ればと考えております。