我有以下要自动化的网站:
https://www.phptravels.net/
我想单击“我的帐户”以到达“注册”和“登录”。
目前,我正在通过导航手动进行操作:
https://www.phptravels.net/demo/login
https://www.phptravels.net/demo/register
我正在为此使用python 3.7
我试过使用Xpath找到它,但是没有运气。它找不到项目,也无法单击它们。
[![<a href="javascript:void(0);" data-toggle="dropdown" class="dropdown-toggle go-text-right"><i class="icon_set_1_icon-70 go-right"></i> My Account <b class="lightcaret mt-2 go-left"></b></a>][1]][1]
请参阅附件图片
最佳答案
要通过url https://www.costcobusinessdelivery.com/LogonForm?URL=%2f
登录到Costco.com,因为所需元素位于<iframe>
中,因此您必须:
促使WebDriverWait提供所需的帧并切换到该帧。
诱导WebDriverWait使所需的元素可单击。
您可以使用以下解决方案:css_selector
:
driver.get("https://www.phptravels.net/")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR,"iframe.full-screen-preview__frame")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "nav li#li_myaccount>a"))).click()
xpath
:driver.get("https://www.phptravels.net/")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH,"//iframe[@class='full-screen-preview__frame']")))
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//nav//li[@id='li_myaccount']/a"))).click()
浏览器快照:
关于python-3.x - 使用 Selenium ,如何单击下拉菜单进入https://www.phptravels.net/的登录页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58032540/