繁体   English   中英

如何在 selenium、python 中打印文本(按类名)?

[英]How to print text (by its class name) in selenium, python?

我有这个代码:

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>

您正试图通过错误的定位器定位该元素。
所需元素的class属性值为Trsdu(0.3s) Fw(b) Fz(36px) Mb(-4px) D(ib) ,它不是id属性。
因此By.ID,您应该使用By.CSS_SELECTOR而不是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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM