我正在尝试在 Chrome 上使用 Selenium - Python 自动登录网站 ( http://www.phptravels.net/ )。这是一个用于自动化教程的开放网站。
我试图单击一个元素来打开一个下拉菜单(顶部导航栏上的“我的帐户”按钮),然后我可以选择登录并将我重定向到登录页面。
HTML 嵌套有许多 div 和 ul/li 标记。
我尝试了多行代码,但未能取得太大进展。
driver.find_element_by_id('li_myaccount').click()
driver.find_element_by_link_text(' Login').click()
driver.find_element_by_xpath("//*[@id='li_myaccount']/ul/li[1]/a").click()
这些是我尝试过的一些示例。所有这些都失败了,并出现错误“元素不可见”。
如何找到这些元素?甚至 xpath 函数也会抛出此错误。 我没有在代码中添加任何时间等待。
有什么想法可以进一步进行吗?
最佳答案
希望这段代码能有所帮助:
from selenium import webdriver
from selenium.webdriver.common.by import By
url="http://www.phptravels.net/"
d=webdriver.Chrome()
d.maximize_window()
d.get(url)
d.find_element(By.LINK_TEXT,'MY ACCOUNT').click()
d.find_element(By.LINK_TEXT,'Login').click()
d.find_element(By.NAME,"username").send_keys("Test")
d.find_element(By.NAME,"password").send_keys("Test")
d.find_element(By.XPATH,"//button[text()='Login']").click()
在你的html页面上使用最好的可用定位器,这样你就不需要为简单的操作创建css的xpath
关于python - 使用 Python Selenium 访问 HTML 中的嵌套元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46335067/