[英]Cannot locate and click an element using Selenium and Python
我真的嘗試了幾乎所有想到的東西來點擊按鈕 沒有
Bellow 是它的完整 HTML 代碼
<div class="row nest">
<div class="condition-row clearfix" id="condition_row_1">
<div class="field small-12 medium-6 columns">
<label>
Does this item still have the retail tags attached? <span>*</span>
</label>
<div class="btn-group elastic">
<a class="pill condition-tags btn white sml ">Yes</a><a class="pill condition-tags btn white sml ">No</a>
</div>
<p class="error clearfix" id="condition-tags_error" style="display: none;">Please select an answer</p>
<input class="required" type="hidden" id="property[condition-tags]" name="property[condition-tags]" value="">
</div>
<div class="field small-12 medium-6 empty columns"></div>
</div>
<div class="condition-row clearfix" id="condition_row_2">
<div class="field small-12 medium-6 columns">
<label>
Does this item have any signs of wear? <span>*</span>
</label>
<div class="btn-group elastic">
<a class="pill condition-wear btn white sml ">Yes</a><a class="pill condition-wear btn white sml ">No</a>
</div>
<p class="error clearfix" id="condition-wear_error" style="display: none;">Please select an answer</p>
<input class="required" type="hidden" id="property[condition-wear]" name="property[condition-wear]" value="">
</div>
<div class="field small-12 medium-6 empty columns"></div>
</div>
<div class="condition-row clearfix" id="condition_row_3">
<div class="clearfix"></div>
<div class="field small-12 columns" id="condition-custom-outer" style="display: none;">
<hr class="hr-line">
<label>Tag any signs of wear.</label>
<div class="btn-group elastic">
<a class="pill condition-list btn white sml ">Scuffs or scratches</a><a class="pill condition-list btn white sml ">Damaged or missing stones</a><a class="pill condition-list btn white sml ">Tarnishing</a> <a class="condition-add-custom btn white sml" id="condition-add-custom" href="javascript:void(0);">
<span class="icon-plus-solid"></span>Add your own
</a>
</div>
<div class="clearfix"></div>
<hr class="hr-line">
<label>Note</label>
<textarea class="condition-notes" placeholder="Please describe wear or damage in detail." id="property[condition-note]" name="property[condition-note]"></textarea>
<input class="customConditions" type="hidden" id="property[condition-list]" name="property[condition-list]" value="">
</div>
<div class="field small-12 medium-6 empty columns"></div>
</div>
</div>
嘗試使用 XPATH、CSS_SELECTOR、LINK_TEXT
似乎他們都沒有工作。
try:
WebDriverWait(driver, 10).until(
EC.element_to_be_clickable((By.XPATH,'/html/body/div[3]/div/div/div[2]/form/div[3]/div[2]/div[1]/div/div[2]/div[1]/div[2]/div/div[1]/div[1]/div/a[2]'))).click()
except:
errorDuringFill = True
使用火狐
現場用途可在: https : //www.tradesy.com/sell/
類別 : 鞋... & 配飾 & 珠寶 & 手鏈
此答案取自: 無法單擊元素:Splinter / Selenium 中的 ElementClickInterceptedException
您可以嘗試以下兩種方法來單擊元素。
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
希望這會奏效。
嘗試將 xpath 更改為:
"//div[contains(@class,'condition-row')]//a[contains(.,'No')]"
您真的應該花一些時間閱讀定位器,而不是從檢查器中復制完整路徑 - 這將使您的工作更輕松,讓您的一天更快樂。
我會嘗試鏈接到上面的condition-row
類,只是為了排除該頁面的類似組件。 然后我們可以使用a
和text()
嘗試這個:
driver.implicitly_wait(4)
e = driver.find_element_by_xpath("//div[contains(@class,'condition-row')]//a[contains(@class,'condition-tags') and text()='No']")
e.click()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.