无法使用 Selenium (python) 在文本框中键入文本

鉴于这是文本框的元素(从 Chrome 检查元素https://www.mousehuntgame.com/login.php 获得):


<input name="username" class="username" type="text" placeholder="Enter 

your username" onkeyup="app.pages.LoginPage.checkEnter(event, 'login');">

我正在尝试在输入框中输入一些文本。我按名称搜索元素,并使用 send_keys() 在文本框中输入一些文本


elem = driver.find_element_by_name("username")

elem.send_keys("aa")

我收到一个异常:


ElementNotVisibleException: Message: element not interactable

我怀疑我没有正确使用 find_element_by。我哪里错了?


另外:有没有办法在 Chrome 中告诉我从 find_element_by 方法中选择了什么?是否有某种方法可以在浏览器中突出显示,即我使用 find_element_by 方法选择的内容?


MMMHUHU
浏览 354回答 3
3回答

莫回无

有两种形式:第一个用于注册,第二个用于登录...两者都有相同的输入字段和名称 "username"您可以使用下面的 CSS 选择器以所需的形式选择输入字段:user_input_register = driver.find_element_by_css_selector("div.register input[name='username']")user_input_login = driver.find_element_by_css_selector("div.login input[name='username']")或者您可以定义表单以进行进一步的输入字段处理:register = driver.find_element_by_class_name('register')login = driver.find_element_by_class_name('login')username_register = register.find_element_by_name('username')username_login = login.find_element_by_name('username')

一只甜甜圈

您有不止一个带有"username".您应该使用更具体的 XPath,例如:elem = driver.find_element_by_xpath('//input[@placeholder="Enter your username"]')或者elem = driver.find_element_by_xpath('//input[@class="username" and @type="text"]')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python