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

硒:使用“ if”来确定元素是否存在时出错

硒:使用“ if”来确定元素是否存在时出错

慕的地10843 2021-05-11 17:13:45
很抱歉,如果我问一个重复/愚蠢的问题。我对如何确定某个元素是否存在感到困惑。错误:如果您运行以下代码,则会弹出“找不到ID“ smc””。if driver.find_element_by_id("smc"):    print("Yes")else:    print("No")以下代码将起作用:try:    verification = driver.find_element_by_id("smc")except NoSuchElementException:    print("No exits")登录页面后,它将输入以下选项之一。如果页面中的一个页面具有“其自己的元素”,则要相应地进行下一步。1.1 page 1 -How to verify: driver.find_element_by_id("smc")-Next step: func1()1.2. page 2 -How to verify: driver.find_element_by_id("editPage")-Next step: print("You need retry later") and exit the code1.3. page 3-How to verify: driver.find_element_by_id("cas2_ilecell")-Next step: func2()我该如何完成任务?当我尝试使用“如果”,它不能工作...。
查看完整描述

3 回答

?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

您在问题中写了解决方案本身。NoSuchElementException如果WebDriver不能使用给定的定位器找到该元素,则抛出该异常,并且您需要使用try-except进行处理,否则,如果您希望代码进入备用路径,则抛出该异常。


如果您不想处理异常,可以使用的其他选项是driver.find_elements。它返回与定位符匹配的元素列表,如果找不到则返回一个空列表。所以你会做类似的事情-


count = len(driver.find_elements_by_id('some_id'))

if count == 0:

   //element was not found.. do something else instead


查看完整回答
反对 回复 2021-05-25
?
慕容708150

TA贡献1831条经验 获得超4个赞

尝试更换

if driver.find_element_by_id("smc")

if driver.find_elements_by_id("smc")


查看完整回答
反对 回复 2021-05-25
?
LEATH

TA贡献1936条经验 获得超6个赞

根据您的问题来确定三个选项并相应地运行下一步,您可以使用以下解决方案:


您可以编写一个函数,test_me()该函数将参数作为id元素的并提供如下状态:


def test_me(myString):

    try:

        driver.find_element_by_id(myString)

        print("Exits")

    except NoSuchElementException:

        print("Doesn't exit")

现在,您可以在代码中的任何位置调用该函数 test_me(),如下所示:


test_me("smc")

#or

test_me("editPage")

#

test_me("cas2_ilecell")


查看完整回答
反对 回复 2021-05-25
  • 3 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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