python - 为什么不能使用click()、clear()、send_keys()?
ringa_lee
ringa_lee 2017-04-18 10:15:33
0
2
837

先放网址https://passport.58.com

我能通过xpath定位到网页元素(用户名)

↑无报错

却不能使用click()、clear()、send_keys()

↑报错:
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/untitled/t.py", line 13, in <module>

browser.find_element_by_xpath("//input[@id='usernameUser']").click()

File "C:UsersAdministratorAppDataRoamingPythonPython35site-packagesseleniumwebdriverremotewebelement.py", line 77, in click

self._execute(Command.CLICK_ELEMENT)

File "C:UsersAdministratorAppDataRoamingPythonPython35site-packagesseleniumwebdriverremotewebelement.py", line 494, in _execute

return self._parent.execute(command, params)

File "C:UsersAdministratorAppDataRoamingPythonPython35site-packagesseleniumwebdriverremotewebdriver.py", line 236, in execute

self.error_handler.check_response(response)

File "C:UsersAdministratorAppDataRoamingPythonPython35site-packagesseleniumwebdriverremoteerrorhandler.py", line 192, in check_response

raise exception_class(message, screen, stacktrace)

selenium.common.exceptions.ElementNotVisibleException:太多了,略

Screenshot: available via screen

我怀疑是这个网站做的保护措施,希望大家能帮我看看0.0

ringa_lee
ringa_lee

ringa_lee

Antworte allen(2)
阿神
#我实际测试了下,因为usernameUser 这个id 是hidden的
from selenium.webdriver.common.keys import Keys
from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://passport.58.com/')
driver.find_element_by_xpath("//p[@class='pwdlogin']").click()#先点击密码登录才会有usernameUser这个id元素
driver.find_element_by_xpath("//input[@id='usernameUser']").click()#ok
Peter_Zhu

不是不能使用,而是这个页面刚进入的时候是扫码登陆,需要先跳转一下,然后密码框其实是隐藏的,需要执行一段JS显示出来.

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!