回答編集履歴

1

追記

2019/08/19 14:54

投稿

shirai
shirai

スコア1290

test CHANGED
@@ -13,3 +13,117 @@
13
13
  print(driver.page_source)
14
14
 
15
15
  ```
16
+
17
+ ---
18
+
19
+
20
+
21
+ ### コメント受けて追記
22
+
23
+
24
+
25
+ だとしたら見えている可能性が高いので以下を実施してみてください。
26
+
27
+
28
+
29
+ あなたが打ち込もうとした検索ボックスをクリックして、
30
+
31
+ 右クリック→検証を押してみてください。開発者ツールが開くと思います。
32
+
33
+
34
+
35
+ そして、その要素は3個あるうちの2個目か3個目を指しているでしょう。
36
+
37
+ 2個目の要素は画面最上部右の検索ボックスを、
38
+
39
+ 3個目の要素は画面最下部左の検索ボックスを指すように
40
+
41
+ このサイトは作られています。
42
+
43
+ あなたのプログラムにはコメントアウトしてありますが
44
+
45
+ ウィンドウを一番下にスクロールしようとした形跡があるので、
46
+
47
+ 3個目を指している可能性が高いですね。
48
+
49
+
50
+
51
+ 開発者ツールのConsoleタブを開いて、以下を入力してみてください。
52
+
53
+ ```javascript
54
+
55
+ document.getElementsByName(’s’)[2].value = (‘ポイント’)
56
+
57
+ ```
58
+
59
+ 検索ボックスに「ポイント」と入力されているはずです。
60
+
61
+ (円マークはバックスラッシュに置き換えてください)
62
+
63
+
64
+
65
+ これをpythonに埋め込むと以下のようになります。
66
+
67
+ ```python
68
+
69
+ driver.execute_script(‘document.getElementsByName(¥’s¥’)[2].value=¥’ポイント¥’’)
70
+
71
+ ```
72
+
73
+
74
+
75
+ もしくはpythonのSeleniumを使って以下の通りです。
76
+
77
+ ```python
78
+
79
+ driver.find_elements_by_name(’s’)[2].send_keys(’ポイント’)
80
+
81
+ ```
82
+
83
+
84
+
85
+ このサイトは横の虫眼鏡マークをクリックしなくても、
86
+
87
+ Enterキーを押すだけで検索に突入する仕様のようですので、
88
+
89
+ ```python
90
+
91
+ driver.find_elements_by_name(’s’)[2].send_keys(Keys.RETURN)
92
+
93
+ ```
94
+
95
+
96
+
97
+ これで検索できるはずです。
98
+
99
+
100
+
101
+ この例ではname属性を使って何個目かを数えましたが、
102
+
103
+ あなたが実施しているようにxpathでも可能です。
104
+
105
+
106
+
107
+ 私はhtmlやcssに詳しくないので
108
+
109
+ どのような作りになっているか分かりませんが、
110
+
111
+ 先ほどの開発者ツールで1個目の要素を選択してみて下さい。
112
+
113
+ GUI上のどこにも青い四角が表示されないはずです。
114
+
115
+
116
+
117
+ この隠された要素(=1個目の要素)に対して
118
+
119
+ エレメントを操作しようとしたため、
120
+
121
+ 「DOM上に存在するが対話できる状態ではない」という意味の
122
+
123
+ ElementNotInteractableExceptionエラーが発生していたというわけです。
124
+
125
+
126
+
127
+ つまりあなたのプログラムの変数tmpの宣言時の
128
+
129
+ リストの添え字を1か2に変えるだけでも動くはずですよ。