如何使用xpath从元素中获取文本
How to get text from element using xpath
我想写一个断言来比较预期的文本和实际的文本。为此,我需要提取文本。这是代码:
<div class="checkout-list">
<div class="notification notification__inform " id="inform-not-product">
<div class="message">
<div class="text">
"some test text"
</div>
</div>
</div>
</div>
这是我的代码:
WebDriverWait(browser, 5).until(
EC.presence_of_element_located((By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]')))
information_message = browser.find_element(By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]').text()
我收到一个错误:
回溯(最近调用最后):
文件“/Users/user/PycharmProjects/automation/tests/sales/1.py”,第 130 行,位于
information_message = browser.find_element(By.XPATH, '//div[包含(@id, "inform-not-product")]//div[包含(@class, "文字")]').文字()
类型错误:'str' 对象不可调用
我也尝试用 XPATH 做同样的事情
WebDriverWait(browser, 5).until(
EC.presence_of_element_located((By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]/text()[1]')))
information_message = browser.find_element(By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]/text()[1]').text()
我又收到一个错误:
selenium.common.exceptions.InvalidSelectorException:消息:无效的选择器:xpath 表达式的结果“//div[contains(@id, "inform-not-product")] //div[contains(@class, "text")]/text()[1]" 是:[object Text]。应该是一个元素。
请帮忙(
text()
不存在于硒中。你只需要使用 text
使用visibility_of_element_located()
代替presence_of_element_located()
您可以忽略包含,因为它不包含动态字符串。
WebDriverWait(browser, 5).until(
EC.visibility_of_element_located((By.XPATH, '//div[@id="inform-not-product"]//div[@class="text"]')))
information_message = browser.find_element(By.XPATH, '//div[@id="inform-not-product"]//div[@class="text"]').text
我想写一个断言来比较预期的文本和实际的文本。为此,我需要提取文本。这是代码:
<div class="checkout-list">
<div class="notification notification__inform " id="inform-not-product">
<div class="message">
<div class="text">
"some test text"
</div>
</div>
</div>
</div>
这是我的代码:
WebDriverWait(browser, 5).until(
EC.presence_of_element_located((By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]')))
information_message = browser.find_element(By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]').text()
我收到一个错误:
回溯(最近调用最后): 文件“/Users/user/PycharmProjects/automation/tests/sales/1.py”,第 130 行,位于 information_message = browser.find_element(By.XPATH, '//div[包含(@id, "inform-not-product")]//div[包含(@class, "文字")]').文字() 类型错误:'str' 对象不可调用
我也尝试用 XPATH 做同样的事情
WebDriverWait(browser, 5).until(
EC.presence_of_element_located((By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]/text()[1]')))
information_message = browser.find_element(By.XPATH, '//div[contains(@id, "inform-not-product")]//div[contains(@class, "text")]/text()[1]').text()
我又收到一个错误:
selenium.common.exceptions.InvalidSelectorException:消息:无效的选择器:xpath 表达式的结果“//div[contains(@id, "inform-not-product")] //div[contains(@class, "text")]/text()[1]" 是:[object Text]。应该是一个元素。
请帮忙(
text()
不存在于硒中。你只需要使用 text
使用visibility_of_element_located()
代替presence_of_element_located()
您可以忽略包含,因为它不包含动态字符串。
WebDriverWait(browser, 5).until(
EC.visibility_of_element_located((By.XPATH, '//div[@id="inform-not-product"]//div[@class="text"]')))
information_message = browser.find_element(By.XPATH, '//div[@id="inform-not-product"]//div[@class="text"]').text