質問編集履歴
5
解決したので「解決した」という箇所を追加した。質問回答者様にベストアンサーとして選びたいのですが、コメントとして記載され知恵いたので、ベストアンサーにすること月できません
test
CHANGED
File without changes
|
test
CHANGED
@@ -122,3 +122,8 @@
|
|
122
122
|
|
123
123
|
|
124
124
|
*seleniumのバージョンを3系に変更してfind_element_by_idのような記述する方法でやるという方法もあると思います。しかし以前そうしたことで、Chrome driverに関するエラーが頻発したため、この方法ではやりたくないのが正直なところです。
|
125
|
+
|
126
|
+
### 解決しました
|
127
|
+
|
128
|
+
本来はa.sc-dtLLSn.dpehytのところを、「class= 〜」の「〜」部分をコピーしていたため、ずっと指定している要素がみつからないという状態に陥っていました!![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-04/c6d56832-b828-4e05-88f3-7a94ac410914.png)
|
129
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-04/921f6dc8-916c-4077-b974-ead05aa00fc0.png)
|
4
試したことを追加した
test
CHANGED
File without changes
|
test
CHANGED
@@ -95,6 +95,15 @@
|
|
95
95
|
e = driver.find_element(By.CSS_SELECTOR, 'div[aria-label="主要 ニュース"] * h1')
|
96
96
|
に書き直して実行してみましたが、同じエラーが出てしまいます。
|
97
97
|
|
98
|
+
・print(driver.page_source)を
|
99
|
+
e = driver.find_element(By.CSS_SELECTOR, '#columnTitle h3 *')
|
100
|
+
の前にかき、
|
101
|
+
以下画像の赤線箇所をe = driver.find_element(By.CSS_SELECTOR, '#columnTitle h3 *')の「#columnTitle h3 *」部分に挿入して実行してみましたが全て同じエラーでした。
|
102
|
+
```
|
103
|
+
<span class="sc-WZYut jLeSfx"><span type="NEW" aria-label="NEW" class="sc-eirqVv XiyIJ" role="img"></span></span></a></li><li data-ual-view-type="list" data-ual="service:news;opttype:pc;apptype:web;element_id:first-main-topics-text;id_type:shannon_article;content_id:a1f7fb0d5e83c1833d8c4cc37ba925639899ff54;mtestid:mfn_31331=oth28t1&mfn_18800=ttlg1tc;" class="sc-fHCHyC jhKFuK" data-ual-content-key="8ef6f43a-8dbe-4c89-9bfb-2b1b98049ee4"><a href="https://news.yahoo.co.jp/pickup/6462083" data-cl-params="_cl_vmodule:tpc_maj;_cl_link:title;_cl_position:2;" data-ual-gotocontent="true" class="sc-dtLLSn dpehyt" data-cl_cl_index="36">
|
104
|
+
```
|
105
|
+
|
106
|
+
![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2023-05-03/c90f0f01-bba4-4dae-8128-9b21bfb8d25d.png)
|
98
107
|
### 補足情報(FW/ツールのバージョンなど)
|
99
108
|
|
100
109
|
Pythonのバージョン:3.10.9
|
3
タイトルを変更した
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
「Unable to locate element: {"method":"css selector","selector"」というエラーを解決したい
|
test
CHANGED
File without changes
|
2
試したことを増やした
test
CHANGED
File without changes
|
test
CHANGED
@@ -75,6 +75,26 @@
|
|
75
75
|
が帰ってくる。
|
76
76
|
![](https://storage.googleapis.com/zenn-user-upload/102d99c17cb2-20230502.png)
|
77
77
|
そのため、このCSSセレクタの記述法は間違っていないことがわかる。ということは、CSSセレクタで指定する場所が間違っていると思うのですが、いろんな箇所を指定してみましたがエラーが起きてしまいます。どうすれば良いのでしょうか?
|
78
|
+
|
79
|
+
・以下の回答をいただき、
|
80
|
+
> スクリーンショットを見ると https://news.yahoo.co.jp/ ではなくて https://yahoo.co.jp/ の様です。そうでしたら、
|
81
|
+
|
82
|
+
>e = driver.find_element(By.CSS_SELECTOR, 'div[aria-label="主要 ニュース"] * h1')
|
83
|
+
|
84
|
+
>となるのではないかと思います。(10:00 時点では「首相 7日からの韓国訪問を表明」が取得されます)
|
85
|
+
|
86
|
+
個人的に
|
87
|
+
|
88
|
+
e = driver.find_element(By.CSS_SELECTOR, 'div[aria-label="主要 ニュース"] * h1')
|
89
|
+
|
90
|
+
の書き方を調べてみましたが、よくわかりませんでした。これはyahoo newsの検索欄で「主要 ニュース」と検索するという意味ですか?また、なぜ https://news.yahoo.co.jp/ ではなく https://yahoo.co.jp/であると、書き方が変わるのかも教えていただけると非常に嬉しいです。
|
91
|
+
|
92
|
+
一応、ソースコードの
|
93
|
+
e = driver.find_element(By.CSS_SELECTOR, '#columnTitle h3 *')
|
94
|
+
部分を
|
95
|
+
e = driver.find_element(By.CSS_SELECTOR, 'div[aria-label="主要 ニュース"] * h1')
|
96
|
+
に書き直して実行してみましたが、同じエラーが出てしまいます。
|
97
|
+
|
78
98
|
### 補足情報(FW/ツールのバージョンなど)
|
79
99
|
|
80
100
|
Pythonのバージョン:3.10.9
|
1
試したことを追加しました
test
CHANGED
File without changes
|
test
CHANGED
@@ -61,7 +61,7 @@
|
|
61
61
|
|
62
62
|
・options.add_argument('--enable-javascript')をした後に、実行→同じエラー
|
63
63
|
|
64
|
-
・driver.find_element(By.CSS_SELECTOR, '#columnTitle h3 *')の「#columnTitle h3 *」
|
64
|
+
・上のスクショ画像にあるh1._3cl937Zpn1ce8mDKd5kp7uのようなclassと記載されている要素は全てdriver.find_element(By.CSS_SELECTOR, '#columnTitle h3 *')の「#columnTitle h3 *」部分に挿入して実行→どれも同じエラーでした。
|
65
65
|
|
66
66
|
・一方、
|
67
67
|
```
|