为了账号安全,请及时绑定邮箱和手机立即绑定

硒等到颜色改变

硒等到颜色改变

白衣染霜花 2022-12-20 09:27:05
我需要我的代码等到按钮改变颜色。我使用了下面的代码,但它有时会失败,因为该项目不再可访问(由于回发)。概述我正在尝试做的事情:当我单击网站上的保存按钮时,在一段未知的时间内一切都变成灰色,然后使用 asp.net 回发。使用硒,我试图等到按钮不再是灰色并且回发已完成。判断回发是否完成的唯一方法是颜色是否不再是灰色。代码:def element_colour_check (self, locator, expected_color):    # loop to retry if element is still loading    for f in range(0,10)        try:            element = self.driver.find_element_by_id(locator)            hex_color = Color.from_string(element.value_of_css_property("background-color")).hex            #check to see if element is correct colour            if (hex_color == expected_color) == True:                return True            else:                sleep(1)                continue        except Exception as e:                          sleep(1)            continue    raise self.insert_error("Element did not change colour")调用函数:element_color_loading_check("save_btn", "#17a2b8")HTML:<input type="submit" name="save_btn" id=" save_btn " class="btn btn-info col-sm-12" value="Home">请注意,当按钮为灰色时,类名不会改变
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

Wait您应该使用专为这种情况设计的Selenium 。他们的自定义预期条件示例非常接近您所追求的。您甚至可以通过CSS 定位器( )使用presence_of_element_located预期条件By.CSS

您可以根据他们的示例将此逻辑更改为您自己的逻辑。

    if self.css_class in element.get_attribute("class"): 
           return element


查看完整回答
反对 回复 2022-12-20
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号