在标签中按文字查找元素

时间:2015-12-28 17:15:53

标签: python selenium

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

如果您要在xpath中指定的文本不是英文,但是,例如,是否存在问题?俄语?

让我说我想找到这样的xpath

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

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

更新

即使使用明确的声明

,它也不起作用
'//*input[@value="%s"]' % u'text in Russian'

我会继续寻找其他原因。

Thx to all

2 个答案:

答案 0 :(得分:0)

它不应该是一个问题,它应该只在Python 3中解码时才能工作。

工作示例 - 使用Python 3.4.3 3.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

答案 1 :(得分:0)

所以,我的问题不是解码,而是指定元素的完整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"]