协助selenium发送密钥python

协助selenium发送密钥python,python,selenium-webdriver,internet-explorer-11,Python,Selenium Webdriver,Internet Explorer 11,我是python脚本编写新手,不理解为什么会出现这个错误。由于某种原因,我无法让它向该元素发送密钥 错误:引发TimeoutException(消息、屏幕、堆栈跟踪) selenium.common.exceptions.TimeoutException:消息: 从selenium.common.Exception导入NoTouchElementException 从selenium.common.exceptions导入TimeoutException url=”http://hjweb.th

我是python脚本编写新手,不理解为什么会出现这个错误。由于某种原因,我无法让它向该元素发送密钥

错误:引发TimeoutException(消息、屏幕、堆栈跟踪) selenium.common.exceptions.TimeoutException:消息:

从selenium.common.Exception导入NoTouchElementException 从selenium.common.exceptions导入TimeoutException

url=”http://hjweb.theblacktux.net:30000/workspace/Default.html"

获取驱动程序(url)

wait=WebDriverWait(驱动程序,20)

element=wait.until(EC.element可点击((通过.CSS\u选择器,“输入.k-textbox”))

元素。发送密钥(“sa”)

元素。单击()

HTML:
通过XPATH查找元素的问题

好的,我还有一个问题!因此,我能够运行这行代码而不会出现错误。(我假设可以使用该xpath定位元素,因为我没有收到错误。)

element=driver。通过xpath(“//hj textbox[@data hj test id='username'])查找元素

但当我把这一行和那一行一起运行时,我得到了一个错误:AttributeError:'list'对象没有属性'send_keys'

element=driver。通过xpath(“//hj textbox[@data hj test id='username'])查找元素 元素。发送_键(“测试”)

于是我试着去做

element=driver。通过xpath(“//hj textbox[@data hj test id='username'])查找元素 元素。发送_键(“测试”)


我得到一个错误:selenium.common.exceptions.NoSuchElementException:Message:找不到xpath=//hj textbox[@data hj test id='username']

可以尝试等待元素出现,然后选择它吗? 只需使用隐式等待即可简化对元素的等待:

from selenium.webdriver.common.by import By
driver.implicitly_wait(4) # CHANGE THE NUMBER OF SECONDS IF NEEDED
element = driver.find_element(By.CSS_SELECTOR, "input.k-textbox")
element.send_keys("sa")


或者,您是否尝试通过xpath查找元素?

请提供完整的错误输出。我建议您不要为同一问题创建。看起来您已经将同一行HTML粘贴了两次,但没有给出任何关于该问题的想法。我想与您确认,如果您手动访问该网站需要多少时间才能完全加载?在浏览器中打开页面时,是否可以看到此文本框已加载?很抱歉,创建了一个新线程。如果我手动访问该站点,大约需要5秒钟才能完全加载。是的,当页面打开时,我可以看到文本框。请提供更多HTML代码,如果有任何敏感信息,您可以用虚拟文本替换。我们不需要任何机密信息,但更多的代码可能有助于更好地理解问题。谢谢你的理解。我在问题中添加了更多的HTML代码,所以我添加了驱动程序。隐式等待(5),我得到了同样的错误。我已经尝试通过xpath定位元素,但它仍然没有完成sendKeys函数。它给出了一个错误,即无法找到元素。我将尝试将xpath问题添加到问题中。我将其添加到原始问题中
from selenium.webdriver.common.by import By
driver.implicitly_wait(4) # CHANGE THE NUMBER OF SECONDS IF NEEDED
element = driver.find_element(By.CSS_SELECTOR, "input.k-textbox")
element.send_keys("sa")