使用硒不工作报废内容

问题描述:

我愿意使用硒登录this website。所以我导入了网页驱动程序,并将登录信息发送到该页面,我也导入了密钥。使用硒不工作报废内容

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

这是我用来制备硒,

chromedriver = "chromedriver.exe" 
browser = webdriver.Chrome(chromedriver) 
browser.get("https://m.adidas.com/us/myaccount-create-or-login") 

我也直到页面加载使用的网站“含蓄等功能”

的用户名栏中进行的浏览器等有这样的HTML内容,

<input type="text" value="" placeholder="* EMAIL" data-placeholder="* Email" maxlength="50" class="textinput required trimspace" name="username" id="username">

而对于密码有

<input type="password" placeholder="* PASSWORD" data-placeholder="* Password" maxlength="50" autocomplete="off" name="password" value="" class="textinputpw required" id="password">

我发现与上面的代码的两个元素的ID的,然后我写了这个代码发送个人信息

username1 = browser.find_element_by_id("username") 
password1 = browser.find_element_by_id("password") 
username1.send_keys(email.get()) # Used a gui entry box so why email.get() 
password1.send_keys(password.get()) 

但上面的代码没有发送信息我不知道为什么它是?你能帮我解决这个问题吗?

我也尝试使用x路径发送密钥。打印网页源检查网站产生403访问被拒绝的错误,但这不是我的情况。

我是新来这个好心裸如果有什么是错的

编辑: - 我的尝试:

username1 = browser.find_element_by_id("username") 
browser.switch_to.frame(username1) 
password1 = browser.find_element_by_id("password") 
browser.switch_to.frame(password1) 
username1.send_keys(email.get()) # Used a gui entry box so why email.get() 
password1.send_keys(password.get()) 

您要访问的元素是IFRAME内。

<iframe id="loginaccountframe" class="sso-iframe" src="https://cp.adidas.com/web/eCom/en_US/loadsignin?target=account" frameborder="0" scrolling="no"></iframe> 

您需要切换到IFRAME才能看到它们。

http://selenium-python.readthedocs.io/navigating.html#moving-between-windows-and-frames

+0

我已经试过了ID后面添加browser.switch_to.frame(USERNAME1)(我refrred另一satck溢出的答案和阿洛斯版画元素未找到你可以解释一些例外,我也提到了这个教程..我很新,很好心地帮助我 – abcdef

+0

你没有提到你已经尝试切换到框架,这是一个重要的细节,获得帮助的最好方法是解释什么所有你已经尝试过,并提供你使用的代码和结果是什么,我只是简单地切换到iframe,输入电子邮件和密码,它工作得很好,你应该再试一次,如果它不起作用,发布你试过的代码(在你的问题中)以及结果是什么......异常消息等 – JeffC

+0

你可以发布你的代码,以便我可以看到我缺少的东西吗?(我要求这个,因为你告诉它它为你工作)我将向你的代码学习 – abcdef

其实@JeffC是正确的,有一个iframe。因此,在找到iframe内的元素之前,您必须切换iframe

正如您在留言已经提到: -

我曾尝试加入browser.switch_to.frame(USERNAME1)

你实际上切换username1元素假定iframe元件,其错误。

您需要单独找到iframe元素作为您尝试查找的其他元素,然后切换到该iframe元素。但在这里,你可以通过如下利用其id切换到iframe: -

browser.switch_to.frame("loginaccountframe") 

#now do your login stuff inside iframe 
username1 = browser.find_element_by_id("username") 
username1.send_keys(email.get()) # Used a gui entry box so why email.get() 

password1 = browser.find_element_by_id("password") 
password1.send_keys(password.get()) 

#now after doing all stuff inside iframe you need to switch back to default content for further steps 
browser.switch_to.default_content()