使用Selenium通过XPath定位Instagram登录按钮遇到问题求助
问题原因
你现有代码定位失败的核心原因是:Instagram登录页的登录按钮是<button>标签元素,并非你XPath里写的<a>超链接标签,所以匹配不到对应元素触发报错。
查找元素属性的方法
打开Instagram登录页后按F12唤起浏览器开发者工具,点击工具左上角的元素选择快捷键(也可以按Ctrl+Shift+C触发),将鼠标移动到页面的登录按钮上点击,开发者工具就会自动定位到该按钮对应的HTML代码段,你可以直接从代码里提取该元素的id、class、type、文本内容等属性用来写定位规则。
可用的登录按钮定位代码
替换你现有代码中「LOG IN」模块的内容,以下几种写法都可正常使用:
写法1:通过按钮类型+文本定位
login_button = browser.find_element_by_xpath("//button[@type='submit' and contains(text(), 'Log In')]") login_button.click()
写法2:通过表单关联定位
login_button = browser.find_element_by_xpath("//form[@id='loginForm']//button[@type='submit']") login_button.click()
写法3:更简单的回车提交(适配性更强)
你输入完密码之后直接触发回车键即可提交,不需要额外定位按钮:
password.send_keys(Keys.ENTER)
补充注意事项
如果遇到点击后无响应的情况,可在点击前加1秒左右的强制等待,避免元素还没渲染完成就触发操作:
sleep(1) # 再执行点击/回车操作
内容的提问来源于stack exchange,提问作者Townie Robbins
相关产品推荐
相关产品推荐

