2016-12-05 153 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

非常感谢您使用正确的拼写。 –

相关问题