无法通过ID查找元素?硒Python

时间:2020-07-25 09:38:03

标签: python selenium-webdriver selenium-chromedriver

我正在此网站上尝试使用硒(https://www.kijiji.ca/t-login.html

这是我使用的代码

driver=webdriver.Chrome(PATH)

driver.get("https://www.kijiji.ca/t-login.html")

driver.find_element_by_id("emailOrNickname")

但我不断得到

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="emailOrNickname"]"}

4 个答案:

答案 0 :(得分:1)

尝试

from bs4 import BeautifulSoup
soup = BeautifulSoup(driver.page_source, 'html.parser')
soup.find_all('input', {'id': 'emailOrNickname'})`

答案 1 :(得分:1)

我认为该网站检测到硒。因为我可以使用普通的浏览器访问该站点,但是硒在登录或注册页面上什么都没有显示。您需要尽可能绕开它。

答案 2 :(得分:1)

您的代码没有错。如果您查看网站上的响应标题,则会看到

server: rhino-core-shield

这表明服务器可能受到Web应用程序防火墙的保护。

如果您使用以下方法检查从网站实际获得的回报

driver.page_source

您将看到实际上并没有获得您期望的登录页面,相反,您将获得一堆可怕的Javascript,该Javascript可能会重定向到真实的登录页面。结果是该特定网站的登录页面将很难以编程方式访问。

答案 3 :(得分:0)

请使用以下xpath单击并将密钥发送到电子邮件字段

 driver=webdriver.Chrome(PATH)

driver.get("https://www.kijiji.ca/t-login.html")

driver.find_element_by_xpath("//input[@id="emailOrNickname"]");