问题描述:
部分代码段如下:
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"))
本文介绍了如何利用Selenium WebDriver进行网页元素定位,包括处理隐藏元素的方法。通过检查元素的`is_displayed()`属性来判断元素是否被隐藏,并使用`get_attribute(textContent)`获取元素的文本内容。在遇到多个相似元素时,可以使用`find_elements()`遍历并打印所有元素的文本。这些技巧在自动化测试和网页数据抓取中非常实用。
1061

被折叠的 条评论
为什么被折叠?



