如何单击 Python Selenium 中的隐藏按钮?
How to click hidden buttons in Python Selenium?
我正在研究 Selenium 中的简单自动化。我需要点击一个特定的按钮。我不能,因为它隐藏在 div/table 中,没有 class。
我附上 html 的屏幕截图。我确实尝试了 xpath,css select,select 仍然没有。
HTML
您可以尝试点击 div 然后。您可以使用 XPath 来定位按钮元素(因为它有一些 class 所以您可以找到它)并添加
/parent::div
获取 div 以单击它。
To click()
你必须在按钮上诱导 WebDriverWait 以获得所需的 visibility_of_element_located()
并且你可以使用以下任一方法 :
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.nightclubs.unstyled > li > table.table.table-condensed button.btn.btn-inverse.btn-small.pull-right"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='nightclubs unstyled']/li/table[@class='table table-condensed']//button[@class='btn btn-inverse btn-small pull-right' and contains(., 'Wejd')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我正在研究 Selenium 中的简单自动化。我需要点击一个特定的按钮。我不能,因为它隐藏在 div/table 中,没有 class。
我附上 html 的屏幕截图。我确实尝试了 xpath,css select,select 仍然没有。
HTML
您可以尝试点击 div 然后。您可以使用 XPath 来定位按钮元素(因为它有一些 class 所以您可以找到它)并添加
/parent::div
获取 div 以单击它。
To click()
你必须在按钮上诱导 WebDriverWait 以获得所需的 visibility_of_element_located()
并且你可以使用以下任一方法
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "ul.nightclubs.unstyled > li > table.table.table-condensed button.btn.btn-inverse.btn-small.pull-right"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//ul[@class='nightclubs unstyled']/li/table[@class='table table-condensed']//button[@class='btn btn-inverse btn-small pull-right' and contains(., 'Wejd')]"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC