先放网址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
阿神2017-04-18 10:17:33
#我实际测试了下,因为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
天蓬老师2017-04-18 10:17:33
It’s not that it cannot be used, but when you first enter this page, you need to scan the QR code to log in. You need to jump first, and then the password box is actually hidden and you need to execute a piece of JS to display it.