Python Selenium无法单击按钮(不在iframe内)

Python Selenium无法单击按钮(不在iframe内),python,html,selenium,iframe,xpath,Python,Html,Selenium,Iframe,Xpath,网页上有一个按钮如下所示: <button class="WAXG WEXG WKKH WOWG WPO" tabindex="0" data-automation-activebutton="true" aria-hidden="false" aria-disabled="false" data-automation-id="wd-ActiveList-addButton" role="button" data-automation-button-type="AUXILIARY" tit

网页上有一个按钮如下所示:

<button class="WAXG WEXG WKKH WOWG WPO" tabindex="0" data-automation-activebutton="true" aria-hidden="false" aria-disabled="false" data-automation-id="wd-ActiveList-addButton" role="button" data-automation-button-type="AUXILIARY" title="Add" type="button"><span class="WFXG WBXG"></span><span class="WCXG" title="Add">Add</span></button>
它总是导致以下错误:

selenium.common.exceptions.TimeoutException: Message:
我尝试过使用不同的方法来查找元素并单击,但总是出现相同的错误。该按钮不在iframe内。此外,我能够访问/单击按钮周围的所有元素。由于错误消息是空的,我不知道为什么会发生这种情况

编辑

以下是检查员的一些周边代码:

<div class="WF-M WFN WOYM WEYM" id="wd-SectionView-NO_METADATA_ID">
    <div class="WH-M">
        <div class="WOO WFN" data-automation-id="activeList" id="wd-ActiveList-  6$87772">
            <div class="WHP">
            </div>
            <button class="WAXG WEXG WKKH WOWG WPO" tabindex="0" data-automation-activebutton="true" aria-hidden="false" aria-disabled="false" data-automation-id="wd-ActiveList-addButton" role="button" data-automation-button-type="AUXILIARY" title="Add" type="button">
                <span class="WFXG WBXG"></span>
                <span class="WCXG" title="Add">Add</span>
            </button>
        </div>
    </div>
</div>

添加

正如我在评论中所假设的,页面上有两个按钮可以通过属性
数据自动找到‌​信息id='wd-Active‌​列表添加按钮“
:第一个按钮隐藏。这就是为什么期望等到它变得可见时,总是返回
False

您可能需要使用以下代码:

xpath = "(//button[@data-automation-id='wd-ActiveList-addButton'])[2]"
add = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, xpath)))
add.click()

它应该允许您单击可见的
“添加”
按钮

如果您尝试单击范围而不是按钮,会怎么样
xpath=“//span[@title='Add']”
?按钮可能实际上不可见或大小为0。这里给出的
html
不太可能,但可能。您还可以尝试使用devtools或firepath查看当您将鼠标放在按钮上时突出显示的元素,因为它实际上可能是包含按钮的元素。检查这是否是唯一具有指定选择器
print(len(driver.find_elements_by_xpath(//button[@data automation id='wd-ActiveList-addButton'])的元素
。可能还有同样的秘密button@mrfreester使用
xpath=“//span[@title='Add']”仍然会出现相同的错误。当我单击该按钮时,Firepath为其生成了以下xpath:
/*[@id='wd-ActiveList-6$87772']/button
@Andersson我尝试了,它打印了0。我尝试了不同的标识符,仍然是0。您可以共享页面
URL
xpath = "(//button[@data-automation-id='wd-ActiveList-addButton'])[2]"
add = WebDriverWait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, xpath)))
add.click()