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()