【问题标题】:How do I pass a variable in element_to_be_clickable of WebDriverWait selenium modules?如何在 WebDriverWait selenium 模块的 element_to_be_clickable 中传递变量?
【发布时间】:2017-12-14 12:02:14
【问题描述】:

我有一个关于如何将 element_to_be_clickable 中的字符串作为变量传递的问题

我会在一个名为 InputVar 的变量中对字符串“input[class='loginTextEntry'][id='user']”进行参数化,并将其传递给 WebDriverWait 的 element_to_be_clickable

例如对于python脚本中的以下(工作正常)指令

WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[class='loginTextEntry'][id='user']"))).send_keys(userinfo[0])

我将其编码为:

InputVar = "input[class='loginTextEntry'][id='user']"
WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 
InputVar))).send_keys(userinfo[0])

但是没用

我尝试了其他一些尝试:

InputVar = "\"input[class=\'loginTextEntry\'][id=\'user\']\""

WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 
InputVar))).send_keys(userinfo[0])

InputVar = "input[class=\'loginTextEntry\'][id=\'user\']"

WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, 
\" + InputVar +\" ))).send_keys(userinfo[0])

但我没有找到任何解决方案。 我怎么能编码呢?这对我来说很重要,因为 InputVar 可以指向不同的情况,我会自动化

【问题讨论】:

  • 试试InputVar = 'input.loginTextEntry#user'
  • 顺便说一句,你遇到了什么错误?
  • 错误很简单:NoSuchWindowException: Message: Window not found。浏览器窗口可能已关闭。
  • 我怀疑问题出在 InputVar 中...也许你以前打电话给driver.closed()?显示所有代码
  • 不,对 driver.close() 的调用仅在指令之后完成。此外,如果 driver.close() 在之前,那么还有没有变量 inputVar 的指令: -> WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[class='loginTextEntry'][id ='user']"))).send_keys(userinfo[0])" 错误地完成了。相反,效果很好

标签: python selenium selenium-webdriver parameter-passing


【解决方案1】:

参数化整个字符串 "input[class='loginTextEntry'][id='user']" 会很麻烦。相反,我建议编写一个function(),它将变量 myUser 作为输入参数,如下所示:

 def test_me(myUser):
        WebDriverWait(driver, explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "input[class='loginTextEntry'][id='" + myUser + "']"))).send_keys(userinfo[0])

【讨论】:

    【解决方案2】:

    已解决: 编辑文件有问题 因为我在外部文件中放入了具有值的变量:

    InputVar=input[class='loginTextEntry'][id='user']

    所以我用我的简单阅读器上传了变量 我在 python 代码中执行了指令:

    WebDriverWait(驱动程序,explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, InputVar))).send_keys(userinfo[0])

    效果很好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-18
      • 2021-11-11
      • 2014-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多