我在自动化使用Chromedriver时遇到了一个问题,我非常困难地理解它。我现在在登录页,以下是该页面的HTML代码:
<frame name="mainFrame" src>
<body>
<table ..>
<tr>
<td ..>
<input type="password" name="ui_pws">
</td>
..
..
..
</frame>
这是一个代码片段,该页面有多个表格、div等元素…… 我试图使用xpath //input[@name="ui_pws"]在输入框中输入密码。但是该元素未被找到。
我认为可能是因为框架错误,所以尝试了:
driver.switch_to_frame('mainFrame')
但是我用NoSuchFrameException失败了,所以我切换到:
main_frame = driver.find_element_by_xpath('//frame[@name="mainFrame"]')
driver.switch_to_frame(main_frame)
然后,为了进行交叉验证,我使用以下代码获取了当前帧元素:
current_frame = driver.execute_script("return window.frameElement")
令我惊讶的是,当我将其打印出来时,得到了两个不同的元素。现在我真的很困惑,应该怎样切换帧或访问网页中的密码字段。早上以来我已经喝了4杯咖啡,但我的大脑还是冻结了。
有人可以指导我吗?