如何单击按钮并使用硒移动到下一页?
How can I click the button and move to next page using selenium?
我无法使用 selenium 单击按钮并移至下一页。我尝试了以下命令:
driver.find_element_by_xpath(".//div[text()='Production']").click()
driver.find_element_by_xpath('//*[@id="root"]/div/[1]/div/div/div[2]/button[2]').click
我添加了 html 的屏幕截图。
我做错了什么?
要单击文本为 Production 的元素,您可以使用以下任一方法 :
使用css_selector
:
driver.find_element(By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title").click()
使用xpath
:
driver.find_element(By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']").click()
理想情况下,单击您需要为 引入 WebDriverWait 的元素,您可以使用以下 :
使用CSS_SELECTOR
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title"))).click()
使用XPATH
:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
我猜分页按钮在页面底部,在可见屏幕之外。如果是这样,要单击它,您首先必须向下滚动页面,将该元素放入视图中,然后再单击它。
请试试这个:
pager = wait.until(EC.presence_of_element_located((By.XPATH, "//div[text()='Production']")))
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(0.5)
actions.move_to_element(pager).perform()
time.sleep(0.5)
driver.find_element_by_xpath("//div[text()='Production']").click()
我无法使用 selenium 单击按钮并移至下一页。我尝试了以下命令:
driver.find_element_by_xpath(".//div[text()='Production']").click()
driver.find_element_by_xpath('//*[@id="root"]/div/[1]/div/div/div[2]/button[2]').click
我添加了 html 的屏幕截图。
我做错了什么?
要单击文本为 Production 的元素,您可以使用以下任一方法
使用
css_selector
:driver.find_element(By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title").click()
使用
xpath
:driver.find_element(By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']").click()
理想情况下,单击您需要为
使用
CSS_SELECTOR
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.nav-option.nav-option--main > div.section-title"))).click()
使用
XPATH
:WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='nav-option nav-option--main']/div[@class='section-title']//div[text()='Production']"))).click()
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
我猜分页按钮在页面底部,在可见屏幕之外。如果是这样,要单击它,您首先必须向下滚动页面,将该元素放入视图中,然后再单击它。
请试试这个:
pager = wait.until(EC.presence_of_element_located((By.XPATH, "//div[text()='Production']")))
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(0.5)
actions.move_to_element(pager).perform()
time.sleep(0.5)
driver.find_element_by_xpath("//div[text()='Production']").click()