![](/img/trans.png)
[英][Python][Selenium] Error on “.find_element_by_class_name.click()”
[英]Python Selenium - error while trying to find element by class name
這是我試圖抓取的網站中的一個元素示例。 它們都沒有 id 或名稱,它們只是像下面的例子那樣有很長的垃圾名稱。
<h1 class="product-name__item product-name__item--name" title="BOEUF HACHE MAIGRE 1 LB">BOEUF HACHE MAIGRE 1 LB</h1>
我嘗試了兩件事並得到了 2 個不同的錯誤。
第一次嘗試:
我嘗試通過 class 名稱找到它。 這會導致超時異常。
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CLASS_NAME, "product-name__item product-name__item--name"))
)
print(element.text)
finally:
driver.quit()
第二次嘗試:
我嘗試通過 css 選擇器找到它,因為我認為包含空格的 class 名稱存在問題。這導致以下錯誤:TypeError: 'str' object is not callable
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located(By.CSS_SELECTOR("[class='product-name__item product-name__item--name']"))
)
print(element.text)
finally:
driver.quit()
你有解決辦法嗎? 謝謝你,祝你有美好的一天!
如果以下解決方案以超時結束,則檢查您的元素是否在 iframe 內。
wait = WebDriverWait(driver, 10)
element=wait.until(EC.element_to_be_clickable((By.CLASS_NAME, "product-name__item product-name__item--name")))
print element.text
XPATH :
wait = WebDriverWait(driver, 10)
element=wait.until(EC.element_to_be_clickable((By.XPATH, "//h1[contains(text(),'BOEUF HACHE MAIGRE 1 L')]")))
print element.text
注意:請將以下導入添加到您的解決方案中
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
使用以下css
選擇器。
try:
element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".product-name__item.product-name__item--name")))
print(element.text)
except:
driver.quit()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.