使用selenium PhantomJS在Span内获取文本

2024-10-04 03:21:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试使用Seleniung webdriver PhantomJS获取span内的文本。我的代码是这样的:

href = driver.find_elements_by_xpath("//a[@class='_8mlbc _vbtk2 _t5r8b']")
for rt in href:
    rt.click()
    if href:
        name = driver.find_elements_by_xpath("//*[@class='_99ch8']/span").text
        # name = driver.find_element_by_xpath("//li[a[@title='nike']]/span").text
        print(name)

在HTML中:

^{pr2}$

我想试着把文本放在范围内。在


Tags: textname文本bydriverelementsfindphantomjs
2条回答

我想首先,如果你想得到一个元素,你需要使用find_element_by_xpath()方法而不是find_elements_by_xpath()方法来获取元素。在

如果使用find_elements_by_xpath(),则需要使用循环语句打印name变量中的所有名称。在

另外,使用元素的.text属性可以得到所需的结果。在

试试这个

^{1}$

不能使用返回文本节点的XPath表达式,因为它不能接受selenium选项-选择器只应返回WebDriver元素

还要注意,li的类名似乎是动态的,所以您可以使用子锚点的title属性值来代替:

^{1}$

更新

完整代码:

^{pr2}$

更新2

您也可以在不打开每个图像的情况下简单地获取相同的文本:

links = driver.find_elements_by_xpath('//img')
for img in links:
    print(img.get_attribute('alt'))

相关问题 更多 >