[英]xpath for click to a button - python/selenium
我正在尝试使用 python/selenium 访问主页,进行登录,单击登录按钮并单击按钮(在第二页中)。
我使用 Xpath 编写的登录按钮运行良好。 浏览器打开,写入用户和登录名,然后单击登录按钮。
不幸的是,在下一页中我无法点击我需要的按钮。 使用 Xpath 无效,我不明白为什么。 html与第一个按钮完全不同,按钮名称为'Reservar',它在一个名为<app-menu__menu>的class中,写为:
<a href="/Services" id="advanced" class="element ">
<span>Reservar</span>
</a>
我得到并尝试过的 xpath:
xpath = "//*[@id="advanced"]"
然后我尝试了第二个版本(它是作为第二行代码 xpath 获得的):
xpath = "//*[@id="advanced"]/span"
当我第一次尝试使用它们时,出现错误。 然后我将“”更改为“”,错误消失了。 但是程序找不到按钮。
我正在使用谷歌浏览器、ubuntu、python3 和 selenium package:
driver.find_element_by_xpath(xpath).click()
谢谢你的帮助。
您可能错过了延迟/等待。
单击登录页面上的提交/登录按钮后,需要一些时间来加载内部页面。
推荐的方法是使用预期条件显式等待,如下所示:
wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='advanced']"))).click()
要在这里使用wait
object,您需要导入以下输入端口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
并初始化wait
object
wait = WebDriverWait(driver, 20)
您将必须验证您的定位器是唯一的。 以及验证您尝试访问的元素不在 iframe 内,也不在新的 window / 选项卡等中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.