teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/07/22 13:16

投稿

shirai
shirai

スコア1290

answer CHANGED
@@ -5,4 +5,38 @@
5
5
  target_list = driver.find_element_by_xpath('リストのxpath')
6
6
  ```
7
7
 
8
- を入れてみてください。
8
+ を入れてみてください。
9
+
10
+ # コメントを受けて追記
11
+
12
+ だったら[これ](https://stackoverflow.com/questions/133925/javascript-post-request-like-a-form-submit)試してみてください。
13
+
14
+ マウスのホバーとその後のクリックの代わりにこれをやるイメージです。
15
+
16
+ ```python
17
+ driver.execute_script('''
18
+ function post(path, params, method='post') {
19
+ const form = document.createElement('form');
20
+ form.method = method;
21
+ form.action = path;
22
+
23
+ for (const key in params) {
24
+ if (params.hasOwnProperty(key)) {
25
+ const hiddenField = document.createElement('input');
26
+ hiddenField.type = 'hidden';
27
+ hiddenField.name = key;
28
+ hiddenField.value = params[key];
29
+
30
+ form.appendChild(hiddenField);
31
+ }
32
+ }
33
+
34
+ document.body.appendChild(form);
35
+ form.submit();
36
+ }
37
+ post('/contact/', {name: 'Johnny Bravo'});
38
+ ''')
39
+ ```
40
+
41
+ DOM上に無理やりこのJSを出現させて実行するイメージです。
42
+ 実際のところはGETリクエストになると思います。