【问题标题】:How to check if the text field conains inputed per defined text in Python Selenium Webdriver如何在 Python Selenium Webdriver 中检查文本字段是否包含输入的预定义文本
【发布时间】:2020-05-08 11:16:57
【问题描述】:

我尝试使用一些断言语句,但每次都失败。

button_test1 = driver.find_elements_by_xpath('//*[@class="custom-select"]')[0]
button_test1.click()

time.sleep(2)

button_test2 = driver.find_elements_by_xpath('//*[contains(text(),"Box Sport Žilina")]')[0]
button_test2.click()

time.sleep(2)

element = driver.find_element_by_xpath('//*[contains(text(),"Box Sport Žilina")]').text

time.sleep(2)

assert element == "Box Sport Žilina"

【问题讨论】:

  • 如果你print(element),它会显示什么?
  • 发布您的相关 HTML 以获得更好的贡献者响应。

标签: python selenium testing assert


【解决方案1】:

xpath 中的contains 表示您将获得部分匹配

<div>Box Sport Žilina some more text<div>

甚至还有空格

<div> Box Sport Žilina<div> <!-- the text is equal to ' Box Sport Žilina' -->

将匹配,element 将具有此文本,它不等于 'Box Sport Žilina'。检查包含在断言中以及

assert 'Box Sport Žilina' in element

【讨论】:

  • 所以我需要一些其他方法来代替包含?
  • @LukeTeensie Contains 很好,但如果你想断言完全匹配,你应该检查它是否真的完全匹配,没有空格或 unicode 字符。
  • @LukeTeensie 因为"box" 也不等于"Box Sport Žilina"
  • @LukeTeensie 如果这只是空格问题,你可以这样做assert element.strip() == "Box Sport Žilina"
【解决方案2】:

试试 input.get_attribute('value')

参考网址:Get value of an input box using Selenium (Python)

【讨论】:

  • 我试过了,但它不起作用。值是指我写入字段的文本?首先我有一些下拉列表和代码中的预定义文本,它只适用于没有空格的字符串。第二件事是当我输入一些我自己写的文本时。它没有保存到代码中,或者它在“那里”不可见......
猜你喜欢
  • 2013-10-08
  • 2016-07-27
  • 2021-08-18
  • 2021-05-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-26
  • 2023-03-24
相关资源
最近更新 更多