我正在编写一个程序来从网站收集数据,但是在程序中的某些时候我需要在文本框中输入电子邮件和密码。我试图去的路线是使用driver.execute_script来更改底层HTML,但是我很难将该命令与我用来查找元素的XPATH值连接起来。我知道这里有一些线程可以处理类似的问题,但是我完全找不到使用XPATH的线程。任何帮助都会非常感激,因为我完全被困在这里。
下面是我尝试更改的HTML行,以及与文本框关联的XPATH值。
XPATH值
/html/body/center/div[4]/table[2]/tbody/tr/td[4]/table[1]/tbody/tr[2]/td/table/tbody/tr[7]/td[2]/font
HTML:
<input onclick="if (this.value == 'Enter Your Name') this.value='';" onchange="if (this.value == 'Enter Your Name') this.value='';" name="name" type="text" value="Enter Your Name" style="padding-top: 2px; padding-bottom: 6px; padding-left: 4px; padding-right: 4px; width:120px; height:15px; font-size:13px; color: #000000; font-family:Trebuchet MS; background:#FFFFFF; border:1px solid #000000;">
我正在尝试将value =“Enter Your Name”替换为value =“Andrew” - 或者其他任何名称。非常感谢您提出的所有建议,请告知我们还有任何其他数据/信息。
Send_Keys脚本:
name = driver.find_element_by_xpath('//body/center/form/span/table/tbody/tr/td[1]/input')
name.clear()
name.send_keys("Andrew")
答案 0 :(得分:0)
您的<input>
标记包含在<iframe>
中,因此您需要先将上下文切换为<iframe>
:
driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
既然你在“{1}}内”,那么你的<iframe>
脚本应该有效:
send_keys
最后,这里是如何切换回默认内容(name = driver.find_element_by_xpath('//body/center/form/span/table/tbody/tr/td[1]/input')
name.clear()
name.send_keys("Andrew")
之外):
<iframe>