2016-12-05 152 views
-1

一直在努力點擊ul中的某個嵌套li。每次嘗試都會引發錯誤。我試圖使用xpath,但任何方法都會受到歡迎。還要考慮span標籤後面有一些額外的文本。Python Selenium元素不存在

腳本:

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會(檢查「明天」的拼寫)

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

讓我檢查一下 –

+0

使用//label[text()=contains(.,'Tommorow')]時出現同樣的錯誤 –

+0

@PeterCunningham - iframe中是否有'span'標籤? – JRodDynamite

1

因爲在SPAN的文字全部是「明天」(拼寫錯誤),你不需要。下面的作品。

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

非常感謝您使用正確的拼寫。 –

相關問題