我有一个关于如何在element_to_be_clickable中传递字符串作为变量
的问题我会参数化字符串"输入[class =' loginTextEntry'] [id =' user']"在名为InputVar的变量中,并将其传递给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可以指向不同的情况,我会自动化
答案 0 :(得分:0)
参数化整个字符串 "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])
答案 1 :(得分:0)
已解决: 编辑文件中有些东西很脏 因为我在外部文件中输入了值为:
的变量InputVar =输入[类=' loginTextEntry'] [ID ='用户']
所以我用一个简单的读者上传了这个变量 我用python代码执行了指令:
WebDriverWait(driver,explicit_TO).until(EC.element_to_be_clickable((By.CSS_SELECTOR, InputVar)))。send_keys(用户信息[0])
工作正常。