单击按钮的 xpath - python/selenium
xpath for click to a button - python/selenium
我正在尝试访问主页,进行登录,单击登录按钮并单击使用 python/selenium 的按钮(在第二页)。
我使用 Xpath 编写的登录按钮,运行良好。浏览器打开,写入用户和登录并点击登录按钮。
不幸的是,在下一页中我无法单击我需要的按钮。它无法使用 Xpath,我不明白为什么。 html与第一个按钮完全不同,按钮名称是'Reservar',它在一个名为的class里面,写成:
<a href="/Services" id="advanced" class="element ">
<span>Reservar</span>
</a>
我得到并尝试过的xpath:
xpath = "//*[@id="advanced"]"
然后我尝试了第二个版本(它是作为第二行代码xpath得到的):
xpath = "//*[@id="advanced"]/span"
当我第一次尝试使用它们时,出现了错误。然后我将“”更改为“”,错误消失了。但是程序找不到按钮。
我正在使用 google-chrome、ubuntu、python3 和硒包:
driver.find_element_by_xpath(xpath).click()
感谢您的帮助。
您可能错过了延迟/等待。
单击登录页面上的提交/登录按钮后,需要一些时间才能加载内部页面。
推荐的方法是使用预期条件显式等待,如下所示:
wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='advanced']"))).click()
要在此处使用 wait
对象,您需要导入以下输入端口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
并使用
初始化 wait
对象
wait = WebDriverWait(driver, 20)
您必须验证您的定位器是唯一的。以及验证您尝试访问的元素不在 iframe 内,也不在新的 window / 选项卡等
中
我正在尝试访问主页,进行登录,单击登录按钮并单击使用 python/selenium 的按钮(在第二页)。
我使用 Xpath 编写的登录按钮,运行良好。浏览器打开,写入用户和登录并点击登录按钮。
不幸的是,在下一页中我无法单击我需要的按钮。它无法使用 Xpath,我不明白为什么。 html与第一个按钮完全不同,按钮名称是'Reservar',它在一个名为
<a href="/Services" id="advanced" class="element ">
<span>Reservar</span>
</a>
我得到并尝试过的xpath:
xpath = "//*[@id="advanced"]"
然后我尝试了第二个版本(它是作为第二行代码xpath得到的):
xpath = "//*[@id="advanced"]/span"
当我第一次尝试使用它们时,出现了错误。然后我将“”更改为“”,错误消失了。但是程序找不到按钮。
我正在使用 google-chrome、ubuntu、python3 和硒包:
driver.find_element_by_xpath(xpath).click()
感谢您的帮助。
您可能错过了延迟/等待。
单击登录页面上的提交/登录按钮后,需要一些时间才能加载内部页面。
推荐的方法是使用预期条件显式等待,如下所示:
wait.until(EC.visibility_of_element_located((By.XPATH, "//*[@id='advanced']"))).click()
要在此处使用 wait
对象,您需要导入以下输入端口:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
并使用
初始化wait
对象
wait = WebDriverWait(driver, 20)
您必须验证您的定位器是唯一的。以及验证您尝试访问的元素不在 iframe 内,也不在新的 window / 选项卡等
中