使用Selenium来查找数量变化的动态li元素

时间:2019-06-29 15:11:26

标签: python-3.x selenium web-scraping

我是新的selenium和python,两天后才开始。我正在抓取网页并尝试查找数量变化的动态图片

我已经使用Chrome开发工具找到了xpath。但是,由于它是动态元素,所以我想出了其中的一部分。

我知道我可以在for标记中使用带有递增变量的for循环,但是随后我想知道是否还有其他方法可以实现.XML中具有endswith函数,但其​​XML2.0和浏览器支持版本1 < / p>

我正在尝试类似的方法

  //*[contains(@id,"submenu1")]/li[i]/a/span

如何构造xpath(/ li [i] / a / span)上方的最后一个元素,以便它可以捕获上面发布的动态数字值?

这是元素的HTML代码

 //*[@id="submenu1"]/li[1]/a/span
 //*[@id="submenu1"]/li[2]/a/span
 //*[@id="submenu1"]/li[3]/a/span
 //*[@id="submenu1"]/li[4]/a/span
 //*[@id="submenu1"]/li[5]/a/span
 //*[@id="submenu1"]/li[6]/a/span
 //*[@id="submenu1"]/li[7]/a/span

实际情况应该能够在li标签内更改数字来捕获

1 个答案:

答案 0 :(得分:0)

尽管ends-with中没有内置的XPath 1.0功能,但现有的XPath functions and operators允许您实现此示例HTML:

<a href="http://com.example">com.example</a>
<a href="http://example.com">example.com</a>

示例XPath可以找到以com结尾的链接:

//a[substring(text(), string-length(text()) - string-length('com')+ 1, string-length(text()))= 'com']

演示:

enter image description here