実現したいこと
html
1<div class="first second"> 2 <p>get text</p> 3</div> 4<div class="first second third"> 5 <p>not get text</p> 6</div>
上記のようなクラス定義されているhtmlで class="first second third"の<p>内のnot get textは取得せず、class="first second" の<p>内のテキスト get text のみをCSSセレクタで取得したい。
発生している問題・分からないこと
下記のコードだと、get textとnot get textの両方が出力されてしまいます。どうすれば、get textのみを取得できますでしょうか?
該当のソースコード
python
1elements = driver.find_elements(By.CSS_SELECTOR, ".first.second :not(.third)") 2for element in elements: 3 print(element.text)
.second と :not の間のスペースを削除してください。
elements = driver.find_elements(By.CSS_SELECTOR, ".first.second:not(.third)")
コメントありがとうございます。スペースを削除したところ問題が解決しました!
ベストアンサーに選びたいので同じ内容を回答欄に投稿いただけますでしょうか?
あ、すいません。確認しながら書いてたら、対応策がずっと前にコメントで出てました。melianさん、お願いします。
確認しようとしたのは、もしdivが取れた場合に、.text でテキスト前後の改行など空白文字も含めて取得できるかどうかですが、前後の空白は削除したものが返されるようですね。いつも自分で削除していたので、あまり意識してなかったです。
回答1件
あなたの回答
tips
プレビュー