python - 使用 Python Selenium 访问 HTML 中的嵌套元素

标签 python html selenium

我正在尝试在 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/

相关文章:

python - Keras 自定义层值错误 : An operation has `None` for gradient.

python - 如何修复Python中的 'TypeError: expecting string or bytes object'错误

php - WordPress 如何以两个为一组列出所有子页面

html - 响应 div 高度

selenium - 我们如何循环不同的基本URL而不是默认基本URL并运行功能测试?

javascript - 无法点击网页中的任何链接

java - 无法使用 SSL 在 java 客户端和 python 服务器之间执行通信

html - 如何在 css 中使::before/::after 元素可点击?

javascript - 有没有办法使用 Rspec/Capybara/Selenium 将 javascript console.errors 打印到终端?

python显示 `\n`而不是换行