如何通过多行文本查找元素

时间:2016-06-03 15:35:09

标签: python selenium-webdriver

如果您传递的文字包含中断,您如何按文字找到元素?

<div>
"Hello"
<br>
"World"
</div>

以下作品:

text = 'Hello'  
driver.find_element_by_xpath("//div[text()[contains(.,'%s')]]"%text)

当变量text'Hello World'

时,此操作失败

有没有办法忽略换行符?

1 个答案:

答案 0 :(得分:0)

尝试使用normalize-space。

这对我有用:

我运行了烧瓶网络服务器:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return """<div>
    "Hello"
    <br>
    "World"
    </div>"""

if __name__ == "__main__":
    app.run()

然后我试图找到文字:

from selenium import webdriver

text = 'Hello World'
driver = webdriver.Chrome()
driver.get("http://localhost:5000")
temp = driver.find_element_by_xpath("//div[normalize-space(//text() = '{0}')]".format(text))
print temp.text

它打印出字符串。

你不应该用那种丑陋的方式来格式化字符串,这是旧的方式。使用格式功能。你写这篇文章时的意思更清楚