我试图找出一种方法来自动登录/在特定网页上的给定文本字段中输入文本。我之前已经不这样做了,但是这个特定的页面还没有响应我抛出的任何内容。
默认页面加载已经在必要的文本框上自动聚焦。我目前正在使用 Python 编写 Selenium 代码。我当前的脚本包括导致当前问题所在页面的先前进程。此外,我一直在 Google-Chrome 浏览器中运行此代码,但用户代理选择为 Edge - Mobile(但这在这里可能无关紧要)。
有问题的网站是此链接上的 Microsoft 登录名。
相关文本框的 CSS/HTML:
<input type="email" name="loginfmt" id="i0116" maxlength="113" lang="en" class="form-control ltr_override" aria-describedby="usernameError loginHeader loginDescription" aria-required="true" data-bind="textInput: usernameTextbox.value,
hasFocusEx: usernameTextbox.focused,
placeholder: $placeholderText,
ariaLabel: tenantBranding.UserIdLabel || str['CT_PWD_STR_Username_AriaLabel'],
css: { 'has-error': usernameTextbox.error },
attr: inputAttributes" placeholder="Email, phone, or Skype" aria-label="Enter your email, phone, or Skype.">
在给定页面加载后,我当前正在测试的代码(基本上是同一想法的三个不同迭代):
element = driver.find_element_by_id("i0116")
element.click()
element.clear()
element.send_keys("[email protected]")
element.send_keys(Keys.RETURN)
time.sleep(1)
element = driver.find_element_by_name("loginfmt")
element.click()
element.clear()
element.send_keys("[email protected]")
element.send_keys(Keys.RETURN)
time.sleep(1)
element = driver.find_element_by_css_selector("input.email")
element.click()
element.clear()
element.send_keys("[email protected]")
element.send_keys(Keys.RETURN)
不幸的是,尝试通过输入 ID、类或名称选择文本框似乎不起作用。值得注意的是,我为文本框引用的页面 CSS 包含一个元素“输入”之前 - 我不确定这是否会影响我当前的代码。我相当确定要么是 send_keys 不起作用,要么是元素本身的选择。
更令人沮丧的是页面的默认焦点在文本框上 - 所以我什至不需要选择元素,我只需要能够输入文本并提交/输入。
我也尝试将其定位为 iframe,但这似乎也无济于事。
有任何想法吗?任何和所有帮助将不胜感激。我只是想找到一种在登录框中输入文本的方法。
要将EmailID输入带有占位符文本作为电子邮件、电话或 Skype的字段,您可以使用以下代码块:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get('https://login.live.com/login.srf')
print("Page Title is : %s" %driver.title)
element = driver.find_element_by_xpath("//input[@class='form-control ltr_override' and @name='loginfmt']")
element.click()
element.clear()
element.send_keys("[email protected]")
控制台输出:
Page Title is : Sign in to your Microsoft account
快照:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句