我有這個代碼:
try:
price = wait(driver, 10).until(EC.presence_of_element_located((By.ID, "Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)"))).text
print(price)
except Exception:
print("element not found")
finally:
driver.quit()
我想要它做的是復制雅虎上的股票價格并在終端中列印出來。我在想,它可能不起作用,因為股票價格在變化,類或其他東西也在變化,但是在嘗試復制一個不動的元素后,它仍然不起作用。我究竟做錯了什么?
網站上的元素代碼如下所示:
<span class="Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib)" data-reactid="31">41.24</span>
uj5u.com熱心網友回復:
您正試圖通過錯誤的定位器定位該元素。
所需元素的class屬性值為Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib),它不是id屬性。
因此,By.ID,您應該寧可使用By.CSS_SELECTOR.
你也應該使用visibility_of_element_located代替presence_of_element_located.
請試試這個:
try:
price = wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span.Trsdu(0.3s).Fw(b).Fz(36px).Mb(-4px).D(ib)"))).text
print(price)
except Exception:
print("element not found")
finally:
driver.quit()
或這個:
try:
price = wait(driver, 10).until(EC.visibility_of_element_located((By.CSS_SELECTOR, "span[data-reactid="31"]"))).text
print(price)
except Exception:
print("element not found")
finally:
driver.quit()
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/338311.html
