python - 如何单击按钮并使用 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 的屏幕截图。
我究竟做错了什么?
解决方案
要单击带有文本作为生产的元素,您可以使用以下任一定位器策略:
使用
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的元素element_to_be_clickable()
,您可以使用以下任一Locator Strategies:
使用
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
推荐阅读
- php - 一段时间后会话到期php
- django - 页面内的 Django 表单也是一个表单
- python - 从 H2o 框架执行 sql 插入时,有没有办法使用 .apply 而不是 iterrows?
- android - 如何使用 gradle 任务将 aab 上传到内部应用程序共享?
- html - 由于 NPM Start 不起作用,如何让 React 项目正常工作
- docker - 如何使用诗歌文件构建 docker 镜像?
- javascript - 有没有办法显示不和谐机器人正在服务的成员
- c# - 循环遍历 C# 中的网格按钮以计算黑色方块
- vue.js - 用 jest 进行 Vue 测试:$route 始终未定义
- vue.js - Router.beforeEach 跳转回登录页面,登录后重置vuex状态值