Python+Selenium中By.TAG_NAME可定位<title>却无法定位<form>,求原因?
错误原因分析
核心原因:定位方法拼写错误
从报错信息里的{"method":"tag ame","selector":"form"}可以看出,定位方法被写成了tag ame(缺少字母n),这说明代码中大概率是把By.TAG_NAME拼写错误了(比如误写成By.TAG_AME),导致Selenium无法识别正确的标签名定位逻辑,自然找不到form元素。
次要可能原因:本地文件路径不规范
代码中driver.get("//mini.html")的路径写法不符合本地文件加载要求,本地HTML文件需要使用file:///协议开头(比如同目录下的文件应该写成driver.get("file:///./mini.html"),或者直接用绝对路径)。错误的路径可能导致浏览器未能正确加载完整页面,虽然title元素因浏览器容错被解析,但body内的form元素未被正常加载。
额外优化建议
你的HTML结构不符合规范:<title>标签应该放在<head>标签内部,虽然浏览器会自动容错修正,但建议调整为标准结构,避免潜在的DOM解析异常:
<html> <head> <title>test</title> </head> <body> <form id="EmployeeLogin"> <input name="fname" type="text" value="First Name"/> </form> </body> </html>
内容的提问来源于stack exchange,提问作者Rec
相关产品推荐
相关产品推荐

