问题描述:
部分代码段如下:
a = driver.find_element(by=By.CSS_SELECTOR, value="body > div > div:nth-child(7) > div.main > div > div > div > div:nth-child(3) > div > div.col-price > p > span > span > span")
print("打印结束:{}".format(a.text))
元素定位是存在文本的【4174】
结果运行代码 输出为空
解决方法:
1. 判断元素是否被隐藏
print ( driver.find_element(xxxx).is_displayed() )
若返回值为False或者空白,那就说明原因被隐藏了
2. 用get_attribute()方法获取
driver.find_element(xxxx).get_attribute(“textContent”)
最后代码和打印结果:
a = driver.find_element(by=By.CSS_SELECTOR,
value="body > div > div:nth-child(7) > div.main > div > div > div > div:nth-child(3) > div > div.col-price > p > span > span > span").get_attribute("textContent")
print("打印结束:{}".format(a))
若存在多个元素,可以:
allPrice = driver.find_elements(by=By.CSS_SELECTOR, value="body > div > div:nth-child(7) > div.main > div > div > div> div div span > span > span")
for price in allPrice:
print(price.get_attribute("textContent"))