【发布时间】: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