python - 如何通过 Selenium python 登录到 yahoo(尝试了多种解决方案)

标签 python selenium xpath selenium-chromedriver

我正在尝试通过 selenium 登录到我的雅虎帐户。我现在只是在学习,并为不同的网站制作了程序,以便整体上更熟悉 Selenium。

我现在正在尝试登录 Yahoo,但我无法弄清楚。

网址:https://login.yahoo.com/

我试过:

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "#login-username"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.ID, "login-username"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "//input[@id='login-username']"))).sendKeys("tester@yahoo.com")

yahoologin1 = WebDriverWait(browser, 10).until(EC.presence_of_element_located((By.XPATH, "/html[1]/body[1]/div[2]/div[1]/div[1]/form[1]/div[2]/input[1]"))).sendKeys("tester@yahoo.com")

有什么我特别想念的吗?如果有人告诉我如何使此登录生效,我将不胜感激。而不是简单的复制粘贴代码 :) 谢谢!

我做了一些进一步的测试,它在主选项卡上工作。但是,我正在打开一个带有雅虎登录页面的新选项卡,它不起作用。我是否必须做一些不同的事情才能在新标签上键入内容?

最佳答案

我使用了另一种没有WebDriverWait的方法来解决,希望对您有所帮助。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--window-size=1920x1080")
browser = webdriver.Chrome('./chromedriver', chrome_options=chrome_options)

# Opening yahoo page in a new tab
browser.execute_script("window.open('https://login.yahoo.com/');")
# Switch to new tab
browser.switch_to.window(browser.window_handles[-1])
# Selecting login-username and putting email
browser.find_element_by_id('login-username').send_keys('tester@yahoo.com')

结果:

Result

关于python - 如何通过 Selenium python 登录到 yahoo(尝试了多种解决方案),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56067539/

相关文章:

python - 为什么成功的 assertEqual 并不总是意味着成功的 assertItemsEqual?

python - 如何使用 python 从坐标写入 dxf 文件?

java - 获取selenium web driver java中元素的类名

java - 为什么 WebElement.isDisplayed() 给我一个 NullPointerException

html - 使用XPath进行HTML解析:扁平化的分层数据

python - 将 Python 脚本应用于 Blender 中的大量 .obj 文件

java - 将 Python/JS 转换为 Java - JSON 和 HMAC

php - 使用 php-webdriver-bindings-0.9.0 在 selenium 中执行 javascript

xml - xpath: 为每个子节点获取父节点的值

php - DOMXPath 查询提取特定的 li 元素