【问题标题】:Find element by text in tag按标签中的文本查找元素
【发布时间】:2015-12-28 17:15:53
【问题描述】:

我正在尝试解析一些网站,但在使用 xpath 查找元素时遇到了问题。

如果您要在 xpath 中指定的文本不是英文而是例如俄语?

假设我想通过这样的 xpath 找到

//*input[@value="text in Russian"]

我是否需要解码某些东西,或者它应该可以工作,我需要解决其他问题??

更新

即使有明确的声明也不起作用

'//*input[@value="%s"]' % u'text in Russian'

我会继续寻找其他原因。

谢谢大家

【问题讨论】:

标签: python selenium


【解决方案1】:

这应该不是问题,它应该在 Python 3 中无需解码即可工作。

工作示例 - 使用 Python 3.4.33.5.1

进行测试
from lxml import html

html_content = '<div anything="который">text inside div</div>'

doc = html.fromstring(html_content)

tree = doc.xpath('//div[@anything="который"]')

print(tree[0].text)

输出:

text inside div

【讨论】:

  • 那我还有其他问题。由于某些原因,我无法以这种方式按下按钮
【解决方案2】:

所以,我的问题不在于解码,而在于指定元素的完整 xpath。

我发现对于结构复杂的页面,部分 xpath 的工作效果不是很好,而且并非总是如此。

在我的情况下是这样的:

//form[@id="basket-form"]/div/div[@class="content-top-secondary-section"]/div/div/div[@data-id="price-summary"]/div/div/input[@value="text in Russian"]

最后一部分的初始简单声明

//input[@value="text in Russian"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-07
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2020-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多