dee*_*esh 0 python selenium xpath css-selectors webdriverwait
我想提取我尝试过的所有<li>元素文本<ul>
elem = driver.find_elements_by_xpath(("//div[@class='left width50']/p/b/ul"))
len(elem)
Run Code Online (Sandbox Code Playgroud)
给出 '0' 或空列表。
这是 html 源代码
<div class="left width50">
<p><b>Features:</b></p>
<ul>
<li>Easy spray application</li>
<li>Excellent bonding properties</li>
<li>Single package</li>
<li>Mixed with clean potable water at job site</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
这里是网站的链接
有什么建议怎么办?
实际上,您正在尝试找到pandb标记之后的路径。看起来像这样。
<div class="left width50">
<p><b>Features:<ul>
<li>Easy spray application</li>
<li>Excellent bonding properties</li>
<li>Single package</li>
<li>Mixed with clean potable water at job site</li>
</ul></b></p>
</div>
Run Code Online (Sandbox Code Playgroud)
但是你的代码在 HTML 中是不同的。
所以你应该在没有pandb标签的情况下环顾四周。
以下是您可以从 chrome 获得的快速帮助。转到开发人员选项f12 key并导航到元素选项卡,然后右键单击要查找的元素并选择选择器值。
您可以在此处阅读有关查找元素的方法的更多信息
如果你想使用xPath这对你来说是正确的 xpath -//*[@id="borderForGrid"]/div[1]/ul
提取工艺
一旦你得到所有ul这将帮助你得到所有的li文本
all_li = all_ul_from_xpath.find_elements_by_tag_name("li")
for li in all_li:
text = li.text
print (text)
Run Code Online (Sandbox Code Playgroud)
工作代码供参考。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.carboline.com/products/")
elem = driver.find_element_by_xpath('//*[@id="borderForGrid"]/div[1]/ul')
all_li = elem.find_elements_by_tag_name("li")
for li in all_li:
text = li.text
print (text)
Run Code Online (Sandbox Code Playgroud)
输出
| 归档时间: |
|
| 查看次数: |
7947 次 |
| 最近记录: |