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

質問編集履歴

2

最終的な解決方法を記載

2021/01/15 00:45

投稿

Hiroms
Hiroms

スコア17

title CHANGED
File without changes
body CHANGED
@@ -72,4 +72,15 @@
72
72
  <selenium.webdriver.remote.webelement.WebElement (session="xxxxxx", element="xxxxxx")>
73
73
  と出力されます。(xxxxは数字とアルファベットの文字列)
74
74
  「It should be an element(エレメントじゃないとダメ)」ということなのですが意味がよくわかりません。
75
- 申し訳ありませんがヒントを頂けますでしょうか。
75
+ 申し訳ありませんがヒントを頂けますでしょうか。
76
+
77
+ ### 解決方法
78
+ 皆様から頂いた回答をベースに、希望する動作ができました。
79
+ 最終的なものを記載しておきます。
80
+ ```python
81
+ name = "ABCD"
82
+ number = driver.find_element_by_xpath("//div[contains(text(), '" + name + "')]/following-sibling::div/span[1]/span")
83
+ print(number.text)
84
+ ```
85
+ ※検索する文字を変数(name)に入れると、[contains(text(), name)] ではうまく行かなかったため
86
+ [contains(text(), '" + name + "')] としました。

1

頂いた回答を元に試してみたが、エラーが出てしまった。

2021/01/15 00:45

投稿

Hiroms
Hiroms

スコア17

title CHANGED
File without changes
body CHANGED
@@ -10,7 +10,7 @@
10
10
 
11
11
  初歩的な質問かと思いますが、よろしくお願いいたします。
12
12
  ### HTMLの例
13
- ```
13
+ ```html
14
14
  <li>
15
15
  <div class="item-name">
16
16
  ABCD
@@ -41,7 +41,7 @@
41
41
 
42
42
  ### 試したこと
43
43
  色々調べながらテキストを検索するとこまではできましたが、その後numberの数値を探す方法がわかりません。
44
- ```
44
+ ```python
45
45
  name = "ABCD"
46
46
  link = driver.find_element_by_partial_link_text(name)
47
47
  print('itemがあります')
@@ -49,4 +49,27 @@
49
49
 
50
50
  ### 補足情報(FW/ツールのバージョンなど)
51
51
  python3.8
52
- selenium 3.141
52
+ selenium 3.141
53
+
54
+ ### 追記
55
+ 頂いた回答を元に作成してみましたが、エラーが出てしまいます。
56
+ なにか考えられる原因ありますでしょうか?
57
+ ```python
58
+ name = "ABCD"
59
+ number = driver.find_element_by_xpath("//div[contains(text(), name)]/following-sibling::div/span[1]/span/text()")
60
+ print(number)
61
+ ```
62
+ とすると、エラー「Message: invalid selector: The result of the xpath expression "//div[contains(text(), name)]/following-sibling::div/span[1]/span/text()" is: [object Text]. It should be an element.」
63
+ が出ます。
64
+
65
+ "/text()"を除いて下記のようにした場合
66
+ ```python
67
+ name = "ABCD"
68
+ number = driver.find_element_by_xpath("//div[contains(text(), name)]/following-sibling::div/span[1]/span")
69
+ print(number)
70
+ ```
71
+ エラーは出ず、
72
+ <selenium.webdriver.remote.webelement.WebElement (session="xxxxxx", element="xxxxxx")>
73
+ と出力されます。(xxxxは数字とアルファベットの文字列)
74
+ 「It should be an element(エレメントじゃないとダメ)」ということなのですが意味がよくわかりません。
75
+ 申し訳ありませんがヒントを頂けますでしょうか。