我正在尝试用Python中的selenium和Chrome登录一个网站。我可以找到用户和密码字段,以及按钮。我唯一不能做的就是用所有的字符串填充密码字段。它写一个子串,长度不同。在
我的代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
browser=webdriver.Chrome(r"C:\Users\Visente\Desktop\Pablito Python\chromedriver.exe")
urlbet='https://www.bet365.es/?&cb=103265469#/HO/'
browser.get(urlbet)
sport=WebDriverWait(browser, 10).until(
EC.presence_of_element_located((By.XPATH,'//*[@id="dv1"]/a')))
sport.click()
user=WebDriverWait(browser,
10).until(EC.presence_of_element_located((
By.XPATH,'/html/body/div[1]/div/div[1]/div/div[1]/div[2]/div/div[1]/input')))
passw=browser.find_element_by_xpath(
'/html/body/div[1]/div/div[1]/div/div[1]/div[2]/div/div[2]/input[1]')
user.send_keys('my_user')
passw.send_keys('password')
submit=browser.find_element_by_xpath(
'/html/body/div[1]/div/div[1]/div/div[1]/div[2]/div/div[2]/button')`
submit.click()
因此,简而言之,y在变量passw
上使用send_keys()的那一行没有写入密码的完整长度,我不知道为什么。
顺便问一下,我如何取回刚才用sed_keys()发送的文本,以便知道传递的内容和字符串中缺少的内容?在
我也遇到了同样的问题,我先点击元素然后发送文本,它解决了问题。在
您不应该在所选字段中键入密码。正如您在注释中所指出的,xpath从}。后者是你应该放密码的地方。我不明白当您试图将键发送到那里时xpath是如何改变的,但它确实是这样。根据更改的速度,从0到几个字符的任何内容都将被发送到错误的输入,这解释了为什么密码字段以密码的子字符串结尾。在
input[1]
切换到{从html中,我们可以看到有3个输入字段,它们都属于
'hm-Login_InputField'
类。在如果您从上到下将它们全部收集起来,它们是用户名、您尝试输入密码的字段和密码字段。在
现在,如果您尝试将密钥直接发送到密码字段
input[2]
,您将得到一个错误,即元素不可见。您必须首先单击input[1]
,才能使input[2]
可见。在使用xpath可以很容易地做到这一点,但是我发现下面的方法更简洁。在
^{pr2}$相关问题 更多 >
编程相关推荐