paymentNumber = driver.find_elements_by_xpath('.//*[@id="search"]')
paymentNumber.send_keys(check_number)
但是当它返回一个列表时,我无法将值发送到文本框。已经尝试使用find_element_by_xpath('')
,它只是通过引发异常崩溃:引发exception_class(消息,屏幕,堆栈跟踪):无法找到webelement
错误:文件
第53行,在downloadFile中 paymentNumber.send_keys(check_number)AttributeError :(“'list'对象没有属性'send_keys'”,u'occurred在索引0')
答案 0 :(得分:2)
鉴于您使用相同的Xpath表达式,很难相信
find_element_by_xpath
的行为与
不同find_elements_by_xpath
最有可能的是, Xpath表达式错误且未找到任何元素。使用find_elements_by_xpath
检索空列表,因此在第一个元素上调用任何内容都不起作用。
更改您的Xpath表达式,使其与您要使用的元素匹配。添加一些日志记录或在使用之前检查元素列表的大小。
答案 1 :(得分:1)
您看到错误AttributeError: ("'list' object has no attribute 'send_keys'", u'occurred at index 0')
的原因是,您使用 find_elements_by_xpath
方法返回 List
。
我们无法在 send_keys
上调用 List
方法,但我们可以调用 send_keys
个人 WebElement
的方法。
因此解决方案是使用 find_element_*
方法。您可以使用以下任一代码块:
使用 find_element_by_id
:
paymentNumber = driver.find_element_by_id("search")
paymentNumber.send_keys(check_number)
使用 find_element_by_xpath
:
paymentNumber = driver.find_element_by_xpath("//*[@id='search']")
paymentNumber.send_keys(check_number)