![](/img/trans.png)
[英]Selenium find_element throwing exception even though the element exists
[英]Cannot find second element in Selenium even though it exists
我有一個腳本,用於查找健身房類名稱,然后單擊相應的按鈕。 當有一個同名的體育課時,它可以完美地工作。 但是當有兩個時,我無法選擇第二個。
這是腳本:
className = 'Zumba'
WebDriverWait(driver, 3).until(EC.visibility_of_element_located((By.XPATH, "//p[contains(text(),'" + className + "')][2]/parent::div/parent::a[@onclick]")))
如果我將 [2] 更改為 [1],那么它會起作用並選擇第一個元素,但 [2] 不會選擇第二個元素。
第一個元素:
<div class="col-xs-12 col-sm-3 col-md-2 class column1" style="">
<a href="javascript:void(0)" style="text-decoration:none;" onclick="getClassDetails('265136', '614617')" class="studio"> <div>
<div class="triangle"></div>
<p style="padding:10px 25px 0 25px;font-size:13px">Zumba</p>
<p style="font-size:12px;text-align:left;float:left;padding:0;margin:0;">
350 cals
</p>
<p style="font-size:12px;text-align:right;float:right;padding:0;margin:0;">
45 mins
</p>
</div>
<div style="clear: both; font-size: 11px; text-align: center; padding: 0px; margin:-5px 5px 5px; background-color: #C52B2B; box-shadow: 0px 2px 2px -1px rgba(0, 0, 0, 0.55) inset;">Fully Booked</div>
</a>
</div>
第二個要素:
<div class="col-xs-12 col-sm-3 col-md-2 class column1" style="">
<a href="javascript:void(0)" style="text-decoration:none;" onclick="getClassDetails('265135', '614617')" class="studio"> <div>
<div class="triangle"></div>
<p style="padding:10px 25px 0 25px;font-size:13px">Zumba</p>
<p style="font-size:12px;text-align:left;float:left;padding:0;margin:0;">
350 cals
</p>
<p style="font-size:12px;text-align:right;float:right;padding:0;margin:0;">
45 mins
</p>
</div>
<div style="clear: both; font-size: 11px; text-align: center; padding: 0px; margin:-5px 5px 5px; background-color: #C52B2B; box-shadow: 0px 2px 2px -1px rgba(0, 0, 0, 0.55) inset;">Fully Booked</div>
</a>
<a href="javascript:void(0)" style="text-decoration:none;" onclick="getClassDetails('265185', '614617')" class="spinstudio"> <div>
<div class="triangle"></div>
<p style="padding:10px 25px 0 25px;font-size:13px">Indoor Cycling </p>
<p style="font-size:12px;text-align:left;float:left;padding:0;margin:0;">
400 cals
</p>
<p style="font-size:12px;text-align:right;float:right;padding:0;margin:0;">
45 mins
</p>
</div>
<div style="clear: both; font-size: 11px; text-align: center; padding: 0px; margin: -5px 5px 5px; background-color: #2d7698; box-shadow: 0px 2px 2px -1px rgba(0, 0, 0, 0.55) inset;">Join Waiting List</div>
</a>
</div>
歡迎任何幫助排除故障。
嘗試
WebDriverWait(driver, 3).until(EC.visibility_of_element_located((By.XPATH, "(//p[contains(text(),'" + className + "')])[2]/parent::div/parent::a[@onclick]")))
訣竅是在選擇第 n 個節點之前將(//p[contains(text(),'" + className + "')])
括起來。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.