【问题标题】:Python/Selenium Webdriver: Adding new input textPython/Selenium Webdriver:添加新的输入文本
【发布时间】:2017-01-21 22:58:33
【问题描述】:

我正在使用带有 selenium webdriver 的 python3 unittest 库。我的申请中已经存在问题。我正在尝试添加另一个问题,但是当我尝试将文本插入新问题的文本字段时 - 它会更改我现有问题中的文本而不是新问题... 我正在使用:

wd.find_element_by_id("id_question-1-title").click()
wd.find_element_by_id("id_question-1-title").clear()
wd.find_element_by_id("id_question-1-title").send_keys("ABC")

但是这个解决方案需要在每次我将代码运行到 id_question-2-title、id_question-3-title 等时更改 id

【问题讨论】:

  • 我假设新问题在 ID 中包含 1,而现有问题移动到 2?
  • 是的,你是对的

标签: python python-3.x selenium selenium-webdriver automated-tests


【解决方案1】:

您可以检查您有多少问题并相应地给出索引

questions = wd.find_elements_by_css_selector('[id*="id_question-1-title"]')
index = len(questions)

wd.find_element_by_id('id_question-' + index + '-title').click()
wd.find_element_by_id('id_question-' + index + '-title').clear()
wd.find_element_by_id('id_question-' + index + '-title').send_keys("ABC")

【讨论】:

    【解决方案2】:

    小伙子,非常感谢!我刚刚将 str 添加到 len(questions) 因为它需要 str insted of int

    questions = wd.find_elements_by_css_selector('[id*="id_question-1-title"]')
    index = str(len(questions))
    wd.find_element_by_id('id_question-' + index + '-title').click()
    wd.find_element_by_id('id_question-' + index + '-title').clear()
    wd.find_element_by_id('id_question-' + index + '-title').send_keys("ABC")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-31
      • 1970-01-01
      • 2013-10-08
      • 2022-10-17
      • 2014-06-29
      • 2018-10-16
      • 2021-09-26
      相关资源
      最近更新 更多