如何点击拒绝点击的可用按钮?

2024-07-03 06:53:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个网站的自动化工作。我的问题是在我的selenium中可见的按钮(只是打印出来)在最近的更新后停止工作。即使我能看到它,我也不能点击它。我注意到它已经开始有动态id选择器,但是类保持稳定。那会是什么?还有别的方法可以点击吗

<div>
    <div>
        <div class="pull-left middle-col-4">
            <!---->
        </div>
        <div class="pull-left middle-col-4">
            <!---->
        </div>
    </div>
    <button tabindex="-1" id="exit-button-ZpyYaHCdmZ5jnmaamGhjaJjFcsVrmJOUcZWVaZlsaGlolpOaZg" class="btn btn-inverse btn-large pull-right">Wyjście</button>
</div>

Tags: dividmiddle网站selenium选择器动态button
2条回答

如果id是动态的,请找到下面的解决方案,单击“退出”按钮

1.Xpath和contains方法

button=driver.find_element_by_xpath("//button[contains(text(), 'Wyjście')]")
button.click()

2.类名

element = driver.find_element_by_class_name("btn btn-inverse btn-large pull-right")
element.click()

点击按钮归纳WebDriverWaitelement_to_be_clickable()并遵循定位器策略

按Css选择器:

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.CSS_SELECTOR,"button.btn.btn-inverse.btn-large.pull-right"))).click()

通过Xpath:

WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//button[@class='btn btn-inverse btn-large pull-right' and starts-with(@id,'exit-button-')][text()='Wyjście']"))).click()

您需要导入以下内容来执行上述代码

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

相关问题 更多 >