Pytest Selenium elem.send_keys()导致类型错误:类型为';非类型';没有len()
我试图将数据发送到登录文本框,但当我使用“发送密钥”时,我收到一个错误Pytest Selenium elem.send_keys()导致类型错误:类型为';非类型';没有len(),selenium,webdriver,pytest,sendkeys,pytest-selenium,Selenium,Webdriver,Pytest,Sendkeys,Pytest Selenium,我试图将数据发送到登录文本框,但当我使用“发送密钥”时,我收到一个错误 def wait_for_element(selenium, selenium_locator, search_pattern, wait_seconds=10): elem = None wait = WebDriverWait(selenium, wait_seconds) try: if (selenium_locator.upper() == 'ID'):
def wait_for_element(selenium, selenium_locator, search_pattern, wait_seconds=10):
elem = None
wait = WebDriverWait(selenium, wait_seconds)
try:
if (selenium_locator.upper() == 'ID'):
elem = wait.until(
EC.visibility_of_element_located((By.ID, search_pattern))
)
except TimeoutException:
pass
return elem
userid=os.environ.get('userid')
wait_for_element(selenium, "ID", 'username')
assert elem is not None
elem.click()
time.sleep(3)
elem.send_keys(userid)
tests\util.py:123:在HTML5\u登录中
元素发送密钥(用户ID)
..\selenium\webdriver\remote\webelement.py:478:in send\u键
{'text':“”.join(键到键入(值))
值=(无,) E TypeError:类型为“NoneType”的对象没有len() 当我让元素通过断言并单击该元素时,我不知道它为什么说该元素为“非类型”。我甚至可以看到它在运行测试时单击该元素!此错误消息
elem.send_keys(userid) ..\selenium\webdriver\remote\webelement.py:478: in send_keys {'text': "".join(keys_to_typing(value)), value = (None,)
TypeError: object of type 'NoneType' has no len()
…表示send_keys()
方法在发送变量userid的内容时遇到错误
虽然您尝试使用变量userid,但我没有看到在代码块中的任何地方声明变量userid。因此您看到了错误:
TypeError:类型为“NoneType”的对象没有len()
解决方案 将用户ID变量初始化为:
userid = "Austin"
现在,执行您的测试。哦,对不起。我忘记在我发布的代码中包含userid。我可以向您保证userid设置了一个字符串。将更新帖子。实际上这就是问题所在。我被分配了userid到
userid=os.environ.get('userid')
这段代码似乎有问题,谢谢您的帮助!
elem.send_keys(userid) ..\selenium\webdriver\remote\webelement.py:478: in send_keys {'text': "".join(keys_to_typing(value)), value = (None,)
TypeError: object of type 'NoneType' has no len()
userid = "Austin"