如何在WebDriverWait selenium模块element_to_be_clickable传递变量?



我有一个关于如何将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 可以指向不同的情况,我会自动化

参数化整个字符串"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])

已解决: 编辑文件时有些脏 因为我在外部文件中放置了带有值的变量:

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

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

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

它工作正常。

相关内容

最新更新