无法在Python中使用Selenium访问弹出式登录表单

2024-10-16 11:24:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我在这里讨论了许多类似的主题,但它们在弹出窗口的设计上似乎都有所不同。我试过几种不同的方法,这里是最新的。因此,在输入登录信息之前,我需要单击客户端登录按钮来访问登录表单,但我甚至无法打开它,更不用说输入登录信息了

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

driver = webdriver.Chrome('C:\Login Automation\chromedriver.exe')  
driver.get("https://www.datamyne.com/ ")

clientlogin = driver.find_element_by_xpath("//div[@id='holder']").click()
username = driver.find_element_by_xpath("//*[@id='user']").send_keys('myusername')
password = driver.find_element_by_xpath("//*[@id='pass']").send_keys('mypassword')

我在这里得到的错误是“NoSuchWindowException:消息:没有这样的窗口:目标窗口已从未知错误关闭:找不到web视图”

第一个按钮的元素如下所示:

<a style="position: relative" href="javascript:showHide('dialog-login');" class="green-btn user-login top-right-5">Client Login</a>

然后,实际的登录按钮是另一个javascript行:

<a href="javascript:loginDM();" style=" color: #fff; height: 40px; font-size: 29px; border-radius: 10px 0px 10px 10px;" class="green-btn bot-left-10"> Login</a>

任何关于如何实现这一点的建议都将不胜感激


Tags: fromimport信息idbydriverseleniumlogin
3条回答

您可以为“客户端登录”弹出模式尝试一次此xpath吗

clientlogin = driver.find_element_by_xpath("//a[@class='green-btn user-login top-right-5']']").click()
clientlogin = driver.find_element_by_xpath("//div[@id='holder']").click()

xpath已关闭。支架不是您需要单击的

我怀疑你想要:

clientlogin = driver.find_element_by_xpath("//a[text()='Client Login']").click()

我已经检查了基于JavaScript的网站登录表单。您可以通过selenium轻松地执行脚本。我已经为您创建了一个基本代码段

from selenium import webdriver
 
driver = webdriver.Chrome('chromedriver.exe')  
driver.get("https://www.datamyne.com/")

##Javascript script execute using selenium

clientlogin = driver.execute_script("javascript:showHide('dialog-login');")
driver.implicitly_wait(5)

username = driver.find_element_by_xpath('//*[@id="User"]').send_keys('myusername')
password = driver.find_element_by_xpath('//*[@id="Pass"]').send_keys('mypassword')
save =  driver.find_element_by_xpath('//*[@id="formLoginDM"]/div[1]/a').click()

相关问题 更多 >