Selenium Web-Driver找不到元素(Selenium IDE可以找到它)

时间:2019-10-21 09:28:22

标签: python html selenium selenium-webdriver

我在用代码查找元素(单击按钮)时遇到问题。我正在使用Selenium IDE查找元素的xpath或css选择器。奇怪的是,Selenium IDE确实找到了它,但是我的代码找不到了。

我要选择的元素是一个按钮,单击时出现一个下拉菜单,我需要单击另一个按钮。

  1. 按钮(button class =“ js-select uk-button uk-button--select”>)
  2. Button(li data-field =“ sapOrderNumber”> Auftragsnummer

这是我要选择的类的html:

<div class="uk-button-dropdown uk-margin-right" data-uk-dropdown="{mode:'click'}" aria-haspopup="true" aria-expanded="false">
        <button class="js-select uk-button uk-button--select">
            <span>Filter auswählen</span>
            <i class="icon-arrow-left"></i>
        </button>
        <div class="uk-dropdown uk-dropdown-close uk-dropdown-bottom uk-dropdown--select" aria-hidden="true">
            <ul class="js-filter-select uk-nav uk-nav--select">
                    <li data-field="articleNumber">Artikelnummer</li>
                    <li data-field="dateRange">Zeitraum</li>
                    <li data-field="sapOrderNumber">Auftragsnummer</li>
                    <li data-field="personalReference">persönliche Referenz</li>
                    <li data-field="shipTo">Lieferadresse</li>
                    <li data-field="orderType">Auftragsart</li>
            </ul>
        </div>
    </div>

Selenium IDE的屏幕截图(Selenium IDE确实找到并单击了按钮)1

我尝试使用以下代码查找元素:

driver.find_element_by_xpath("//ul[@id='tabs-orderbook']/li/div/div/div/div/div/button").click()
driver.find_element_by_xpath("//button").click()
driver.find_element_by_css_selector(.uk-margin-right > .js-select").click()

这是我收到的错误消息:

NoSuchElementException:否这样的元素:无法找到元素:{“ method”:“ xpath”,“ selector”:“ // ul [@ id ='tabs-orderbook'] / li / div / div / div / div / div / button“}

我已经寻找答案很久了,并且感到沮丧。如果有任何帮助或提示,我将非常感谢。

我正在使用Chrome(版本77.0.3865.120),chrome网络驱动程序(版本77.0.3865.40),硒(版本3.141.0)

ps。这是我关于堆栈溢出的第一个问题,因此,如果您对我提出问题的技巧有任何建议,我也将不胜感激。

非常感谢,祝您有愉快的一天。 :D

1 个答案:

答案 0 :(得分:0)

根据我的理解,您想选择类名称为“ js-select uk-button uk-button--select”的按钮。.下面是它的xpath,

// button [包含(@ class,'js-选择uk-button uk-button--select')]

在下面选择下拉值的是xpath,

// li [包含(text(),'Auftragsnummer')]