如果硒中不存在某个元素,我该如何循环函数?

时间:2017-11-20 04:29:48

标签: python selenium selenium-webdriver selenium-chromedriver

我想在selenium中循环一个函数。

因此,只要网页上的DisplayName不是" fish",我希望程序输入" fish"并按Enter键直到显示名称为" fish"然后我希望程序停止。

目前,该计划一直在运行并输入" fishfishfishfishfish"显示名称。

 DisplayName = driver.find_element_by_xpath("""//*[@id="DisplayName"]""")
    while (DisplayName != "fish"):
        DisplayName.send_keys("fish"")
        DisplayName.send_keys(u'\ue007')

1 个答案:

答案 0 :(得分:0)

在开始输入之前使用clear方法清除字段。
也可以使用常量等待很短的时间 - 在AJAX页面中,当字段值发生变化时可能会触发一些javascript,给这个javascript一些时间来执行(我不知道如何在phyton中执行它,在下面的示例中我使用sleep( 1 second),在Java中我们使用Thread.sleep( 1000 )来睡1秒钟。

DisplayName = driver.find_element_by_xpath("""//*[@id="DisplayName"]""")
    while (DisplayName != "fish"):
        DisplayName.clear()
        DisplayName.send_keys("fish"")
        DisplayName.send_keys(u'\ue007')
        sleep( 1 second)