繁体   English   中英

当类更改时,如何验证按钮是否可以在 Python 中使用 Selenium 进行单击?

[英]How to verify if a button is clickable with Selenium in Python when the class changes?

我正在尝试找出“送货到家”按钮是否可用以及是否可以在 The Home Depot 网站上的某个项目上单击。 目前,我为按钮找到的唯一标识符是一个类,但是当您从商店取货到运送到家时,这两个类会切换按钮元素的位置。 两元素开关<\/a>

当“送货到家”选项不可用并且包含更多不同的类时,这更加令人困惑。 不可用元素<\/a>

我试图避免使用 xpath,因为我担心它将来可能会改变位置,我必须不断更新它。 我对 selenium 了解不多,但我假设必须有某种类型的方法来循环 HTML 的一部分,并找出元素是否包含一些文本以及是否确实单击该元素。

XPATH 可以非常灵活,允许引用大量元素节点的数据,并且预先允许一些逻辑条件等。所以我相信它非常强大和灵活,足以产生一些有针对性的而不是脆弱的结果。

关于你的情况:

clickable_button_xpath = "//a[@type='button'][contains(., 'Ship to Home') and contains(@class, '-unselected')]"
selected_button_xpath = "//a[@type='button'][contains(., 'Ship to Home') and contains(@class, '-selected')]"
unclickable_button_xpath = "//a[@type='button'][contains(., 'Ship to Home') and contains(@class, '-unclickable')]"

some_element = driver.find_element(By.XPATH, some_xpath)

暂无
暂无

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

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