![](/img/trans.png)
[英]How to locate an element by class name and its text in python selenium
[英]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.