作者yimean (温柔杀手)
看板Python
标题[问题] 网页定位卡关
时间Sun Jul 2 20:11:37 2017
各位版上的大大晚上好
我最近在学习selenium以自动登入Gmail作为练习对象,已经卡关两天罗。
在输入ID的时候没什麽问题。
但在输入Password的时候却发现抓不到原件
我有尝试过使用Xpath跟CSS定位都失败。
//*[@id="password"]/div[1]/div/div[1]/input
//*[@id="password"]/div[1]/div/div[1]/div
这两Xpath个我都尝试过,也想过先用click在输入,模拟真实输入状况。
但就是没法输入任何东西。下方是错误讯息。
NoSuchElementException: no such element: Unable to locate element:
{"method":"xpath","selector":"//*[@id="password"]/div[1]/div/div[1]/div"}
(Session info: chrome=59.0.3071.115)
(Driver info: chromedriver=2.30.477700
(0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1
x86_64)
恳请高手指导一下应该如何正确定到位。
感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.195.99.225
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1498997500.A.C01.html
※ 编辑: yimean (123.195.99.225), 07/02/2017 20:53:10
1F:→ s860134: m... _by_css_selector("[type='password']") 07/02 21:44
2F:→ s860134: 浏览器 F12 可以看到原始码,可找一些很明显的属性去定位 07/02 21:46
3F:→ wennie0433: 如果确定定位没错 就加个等待时间 让动作慢点 试试 07/03 01:50
感谢两位大大的分享,但是我还是没法正确输入。
下方是我的程式码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
chromedriver = "D:\desktop\Python3\chromedriver"
driver=webdriver.Chrome(chromedriver)
driver.get("
https://accounts.google.com/ServiceLogin/identifier?service=mail&
passive=true&rm=false&continue=https%3A%2F%2Fmail.google.com%2Fmail%2F&ss=1&sc
c=1<mpl=default<mplcache=2&emr=1&osid=1&flowName=GlifWebSignIn&flowEntry=
AddSession")
driver.find_element_by_xpath("//*[@id='identifierId']").clear()
driver.find_element_by_xpath('//*[@id="identifierId"]').send_keys("yimean@gmai
l.com")
driver.find_element_by_xpath('//*[@id="identifierNext"]/content/span').click()
driver.find_element_by_css_selector("[type='password']").clear()
time.sleep(2)
driver.find_element_by_css_selector("[type='password']").send_keys("xxxxxxxx")
然後错误讯息如下:
InvalidElementStateException: invalid element state: Element is not currently
interactable and may not be manipulated
(Session info: chrome=59.0.3071.115)
(Driver info: chromedriver=2.30.477700
(0057494ad8732195794a7b32078424f92a5fce41),platform=Windows NT 6.1.7601 SP1
x86_64)
在请大大指导一下了,感谢。
※ 编辑: yimean (123.195.99.225), 07/03/2017 08:40:33
4F:→ s860134: 当你输入完帐号後,密码那边有 js 的动态改变 DOM 结构 07/05 01:40
5F:→ s860134: 你可以帐号点完後 sleep 2秒後继续就可 07/05 01:41
6F:→ s860134: 你贴的 code sleep 再往前一行应该就可以动了 07/05 01:41
8F:→ yimean: 太感谢大大了,我好好研读一下。感恩。 07/05 16:54
9F:→ IRONBLOOD: driver.find_element_by_xpath("html/body/div[1]/div[ 07/27 00:47
10F:→ IRONBLOOD: 1]/div[2]/div[2]/form/div[2]/div/div/div[1]/div[1]/ 07/27 00:47
11F:→ IRONBLOOD: div/div[1]/div/div[1]/input").send_keys("xxxx") 07/27 00:48