当前位置: 首页 > 知识库问答 >
问题:

selenium webdriver无法使用driver . find _ element _ by _ CSS _ selector单击按钮

丁阳炎
2023-03-14

无法使用driver.find_element_by_css_selector单击按钮

我尝试使用此查找元素driver.find_element_by_css_selector driver.find_element_by_css_selector('#minicart -内容-包装器

并拥有此代码

我尝试使用x_path//*[@id="minicart-内容包装器"]/div[2]/div[5]/div[1]/div/a,但它不起作用。


共有2个答案

叶坚
2023-03-14

根据查询中提供的 html 代码,以下定位器策略应该有效:

通过CLASS_NAME:

driver.find_element(By.CLASS_NAME, 'action viewcart'])

通过CSS_SELECTOR:

driver.find_element(By.CSS_SELECTOR, '.action viewcart'])
OR
driver.find_element(By.CSS_SELECTOR, "a[class='action viewcart']")

按XPATH(带文本):

driver.find_element(By.XPATH, "//*[text()='View Cart']")

通过LINK_TEXT:

driver.find_element(By.LINK_TEXT, 'View Cart'])

通过XPATH(包含):

driver.find_element(By.XPATH, "//span[contains(text(), 'View and Edit Cart')"])

建议您使用显式等待,例如WebdriverWait,以便等到元素可见/可单击等。

别烨熠
2023-03-14

请检查开发工具(谷歌浏览器)中是否有唯一的HTML-DOM条目。

应该检查的xpath:

//a[contains(.,'View Cart')]

检查步骤:

在Chrome中按F12-

如果是唯一匹配,请单击如下所示:

代码试用1:

time.sleep(5)
driver.find_element(By.XPATH, "//a[contains(.,'View Cart')]").click()

代码试用2:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//a[contains(.,'View Cart')]"))).click()

进口:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

建议使用代码试用版2。

 类似资料:
  • 我正在尝试通过xpath,css,ID...但什么都管用。 我总是得到错误:没有这样的元素:无法定位元素 我添加了一个明确的等待,但它仍然不起作用。 你能帮帮我吗? 单选按钮

  • 我试图用硒点击“下一页”按钮,但没有成功。我使用了正确的CSS选择器还是应该把它换成别的东西?

  • 我正在尝试使用Java Selenium Web驱动程序单击弹出窗口中的“保存”按钮,但是它会引发异常 消息:元素当前不可见,因此可能不会与命令持续时间交互 我可以看到“保存”按钮在我的弹出窗口中处于活动状态。我不知道它抛出异常的原因。 我正在尝试单击的“保存”按钮的 HTML 代码, firepath:html/body/div[6]/div/div/div/dir[2]/div/div//bu

  • 我刚开始在appium测试。我能够设置一切并运行测试。我使用UiAutomatorViewer访问了一些按钮,现在我需要单击一个按钮,但我只是得到了cont-desc。我尝试了以下XPath,但最终得到一个错误。任何帮助都会很好。 @findby(xpath=“//*[@contentdescription='登录  登录']”) driver.findElement(by.xpath(“//an

  • 我正在尝试并自动导航到外部网站。为此,我需要单击一个按钮(在完整日历中显示下一周)。Vaadin的Fullcalendar插件如下所示。 该按钮在HTML中定义为(Electron 80 developer tool): 其xpath(来自Firefox 68开发工具)定义为: 所以我在Selenium IDE中添加了一个单击命令,目标字段中有以下文本: 但当然,由于所有按钮(即上一个或今天的按钮

  • 我正在尝试用Selenium Web驱动程序点击一个按钮。 (我觉得是用棱角写的??) URL为https://www.truelocal.com.au/search/accountants/canberra 这是页面底部的绿色按钮,上面有“加载更多结果” 元素页源是...

  • 嗨,我正在尝试自动化https://www.nextgenerationautomation.com,但无法使用Selenium 4单击登录/注册按钮 步骤: null 如果我在这里遗漏了什么,请告诉我。