2016-12-05 6 views
-1

ulの特定のネストされたliをクリックするのに苦労しました。各試行でエラーが発生します。 Imはxpathを使用しようとしていますが、どんなアプローチでも歓迎します。また、spanタグの後ろに余分なテキストがあることを考慮してください。Python Selenium Elementが存在しません

スクリプト:

driver.find_element_by_xpath("//label[text()=contains(span,'Tomorrow')]").click() 

HTML

<ul class="slide-flow"> 
<li class="slide-flow__item">....</li> 
<li class="slide-flow__item"> 
<div> 
<label class="radio" for="pack 2" data-track="2nd track"> 
<div class="slide-flow__menu menu_brand"> 
<strong> 
<span>Tomorrow</span> 
</strong> 
-Second Notataion 
</label> 
<span class="slide-flow__price">...</span> 
</div> 
</li> 
<li class="slide-flow__item"> ....</li> 
</ul> 
+0

あなたはこのhtmlの部分がiframeの内側にないことを確信していますか?その場合は、最初にiframeに切り替える必要があります。 – Jose

+0

いいえ、ここにはiframeは関係ありません。私はそれがそうだったと思う。 –

+1

あなたが受け取った正確なエラーメッセージとより多くのHTMLを分けてください。 – Jose

答えて

1
  1. "明日" の綴りは、XPathやHTMLで異なっています。
  2. の機能では、contains(., 'Tommorow')を試してください。 span.に置き換えてください。

正しいXPathは、SPAN内のテキスト全体が「明日」(スペルミス)ですので、あなたがを必要としない

//label[text()=contains(.,'Tommorow')] 
+0

それをチェックしてみましょう –

+0

//label[text()/contains(.,'Tommorow ')]を使って同じエラーが発生しました –

+0

@PeterCunningham - 'iframe'内の' span'タグですか? – JRodDynamite

1

(「明日」の綴りを確認してください)となります。以下は動作します。

//span[text()='Tommorow'] 
+1

ありがとうございました。これは正しいスペルで動作するようになりました。 –

関連する問題