繁体   English   中英

查找元素以单击过滤器按钮的问题 - SELENIUM

[英]Problem with find element to click in a filter button - SELENIUM

我正在尝试使用 Selenium 自动化我的工作中的一项任务。 一切都很好,直到我不得不点击一个过滤器按钮。

我尝试使用 find_element_by_xpath 但它出错了。 (我试过 CSS 选择器和链接文本,它也出错了)。

我被困在那个部分。 有人可以帮助这个绝望的巴西女孩吗? 哈哈

我尝试过的事情:

 nav.find_element_by_css_selector('.btn-lg').click()

错误:NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"css selector","selector":".btn-lg"}

nav.find_element_by_xpath('/html/body/div[4]/div/div[2]/div/div/div[3]/div/div[2]/div[1]/div/div/form/div[1]/button').click()

错误:NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"/html/body/div[4]/div/div[2]/div/div/ div[3]/div/div[2]/div[1]/div/div/form/div[1]/button"}

HTML 从按钮:

<button type="button" class="btn btn-default btn-lg" title="Filtros" ng-click="openFilters()" ga-event="" ga-label="open-orders-filters"><span class="uim-filter-count badge">1</span> <i class="icon-filter"></i></button>

<div class="uim-btn-filter uim-filter-checked" ng-class="{ 'uim-filter-checked': filters.getAppliedFilters().length }"><button type="button" class="btn btn-default btn-lg" title="Filtros" ng-click="openFilters()" ga-event="" ga-label="open-orders-filters"><span class="uim-filter-count badge">1</span> <i class="icon-filter"></i></button></div>

谢谢!

尝试这个

driver.find_element_by_xpath(".//button[@title='Filtros']").click()

试试这个 Xpath

'//button[@ng-click="openFilters()"]'

或这个

'//button[@title="Filtros()"]'

或者

'//button[@title="Filtros()" and (@ng-click="openFilters()")]'

如果您的元素位于 iframe 内,您需要执行以下操作:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait

wait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it(driver.find_element_by_tag_name("iframe")))

我在这里根据它的标签名称提到了iframe。 根据适合您情况的实际定位器,您可能需要使用其他定位器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM