回答編集履歴

2

iframe の中を探すように修正

2019/06/30 12:46

投稿

nunukim
nunukim

スコア135

test CHANGED
@@ -27,3 +27,53 @@
27
27
  ```
28
28
 
29
29
  とすることで動作するかと思います。
30
+
31
+
32
+
33
+ # コメントを受けて追記
34
+
35
+
36
+
37
+ 探しているform (element1) がiframe の中に存在しているため、iframe の中を探すようにしなければなりませんでした。
38
+
39
+
40
+
41
+ 以下で動作することを確認しました。
42
+
43
+
44
+
45
+ ``` python
46
+
47
+ import time
48
+
49
+ from selenium import webdriver
50
+
51
+
52
+
53
+ driver = webdriver.Chrome()
54
+
55
+ driver.get('https://www.sej.co.jp/shop/')
56
+
57
+ time.sleep(5)
58
+
59
+
60
+
61
+ # iframe の中にフォーカスを切り替える
62
+
63
+ iframe = driver.find_element_by_css_selector('iframe[src="//www.e-map.ne.jp/p/711map/?p_s1=40000"]')
64
+
65
+ driver.switch_to_frame(iframe)
66
+
67
+
68
+
69
+ element1 = driver.find_element_by_name('formAddrW')
70
+
71
+ element2 = element1.find_element_by_name('keyword')
72
+
73
+ element2.send_keys('豊島区')
74
+
75
+ element2.submit()
76
+
77
+
78
+
79
+ ```

1

element1 のクエリも変更

2019/06/30 12:46

投稿

nunukim
nunukim

スコア135

test CHANGED
@@ -1,10 +1,28 @@
1
+ ※修正しました
2
+
3
+
4
+
1
5
  ![イメージ説明](ddea81f13a3b18f1bef4f78958d0cc88.png)
2
6
 
7
+
8
+
9
+ 該当箇所の html を上図に載せています。
10
+
11
+
12
+
3
- 当該箇所のクラス名`keyword` ではなく、 `searchFW` ですので(上図)
13
+ `element1` は、クラス名(`class` 属性)ではなく、 `name` 属性 が`formAddrW` ですので、
14
+
15
+ `find_element_by_class_name` ではなく、 `find_element_by_name` を使います。
16
+
17
+ `element2` も同様に、クラス名ではなく、 `name` 属性が `keyword` ですので、`find_element_by_name` を使います。
18
+
19
+
4
20
 
5
21
  ```python
6
22
 
23
+ element1 = driver.find_element_by_name('formAddrW')
24
+
7
- element2 = element1.find_element_by_class_name('searchFW')
25
+ element2 = element1.find_element_by_name('keyword')
8
26
 
9
27
  ```
10
28