为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMMHUHU 2021-09-14 15:06:49
鉴于这是文本框的元素(从 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 方法选择的内容?
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

有两种形式:第一个用于注册,第二个用于登录...两者都有相同的输入字段和名称 "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')


查看完整回答
反对 回复 2021-09-14
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

您有不止一个带有"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"]')


查看完整回答
反对 回复 2021-09-14
  • 3 回答
  • 0 关注
  • 353 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号