首页 > 解决方案 > Selenium Python:无法通过id获取元素,其中id = principal

问题描述

对于我的日常工作,我正在尝试创建一个 Python 脚本,它能够填写来自不同网站的不同表格。

事情是这样的,对于某些类型的网站,我无法捕捉到 Selenium 的表单元素。例如在这个网站上:https ://econnect.bpcl.in/selfservice-ext/pub/login.html我用 Chrome 检查页面时,输入“用户 ID”框的 ID 为“主体”,但 Selenium 不是能够得到它。当我显示这个页面的 html 代码时,表单看起来像是从另一个页面或其他东西中包含的。

我尝试getelementbyid、byname、bycssselector等。我还尝试使用WebDriverWait(驱动程序,5)等待页面完全加载,但它仍然不起作用。

我也尝试了 driver.execute_async_script 和 driver.execute_script

您有什么解决方案或建议吗?

PS:即使使用 javascript,我也无法通过 id 获取此元素

谢谢

标签: javascriptpythonjqueryseleniumwebdriver

解决方案


您可以尝试使用 x-path,我使用的是 chrome 扩展:https ://chrome.google.com/webstore/detail/xpath-finder/ihnknokegkbpmofmafnkoadfjkhlogph?hl=en

定位要填充的元素

然后你可以使用 driver.find_element_by_xpath("X-PATH").sendkeys("...")
如果你不想下载 chrome 扩展,你可以尝试使用 HTML 脚本,但我怀疑它会起作用,因为你说它不适合你......


推荐阅读