Python 如果selenium中不存在某个元素,如何循环函数?

Python 如果selenium中不存在某个元素,如何循环函数?,python,selenium,selenium-webdriver,selenium-chromedriver,Python,Selenium,Selenium Webdriver,Selenium Chromedriver,我想在selenium中循环一个函数 因此,只要网页上的DisplayName不是“fish”,我就希望程序输入“fish”并按enter键,直到显示名称为“fish”,然后我希望程序停止 目前,程序一直在运行,并输入“fishfish”作为显示名称 DisplayName = driver.find_element_by_xpath("""//*[@id="DisplayName"]""") while (DisplayName != "fish"): Display

我想在selenium中循环一个函数

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

目前,程序一直在运行,并输入“fishfish”作为显示名称

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

在开始键入之前,使用
clear
方法清除字段
还要使用一个短时间的常量等待-在AJAX页面中,当字段值更改时可能会触发一些javascript,给这个javascript一些时间来执行(我不知道如何在phyton中执行,在下面的示例中,我使用了
sleep(1秒)
,在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)

在开始键入之前,使用
clear
方法清除字段。
还要使用一个短时间的常量等待-在AJAX页面中,当字段值更改时可能会触发一些javascript,给这个javascript一些时间来执行(我不知道如何在phyton中执行,在下面的示例中,我使用了
sleep(1秒)
,在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)

您不会在while循环中刷新
DisplayName
中的值。键入'fish'后,获取字段的新值,以便while循环有新的内容可供测试。4个问题。1)网页上的
DisplayName为“fish”
的标准是什么?2)我们需要为此做些什么?3) 您是要在同一个元素中键入“fish”还是在其他元素中键入?4) 按
Enter
将显示名称更改为
“fish”
?相同的元素。按enter键会将DisplayName更改为“fish”。首先,元素在发送键后被填充,然后按enter键保存它,但程序会继续运行,每次填充完后都会额外键入一条fish。我只想知道如何检查元素==某个字符串,以便它执行某些操作(在本例中,停止)。
DisplayName
是元素,而不是文本。使用
DisplayName.text
DisplayName.get\u attribute(“value”)
如果它是
输入
标记等。可能的重复项不会刷新while循环中
DisplayName
中的值。输入'fish'后,获取字段的新值,这样while循环就有了新的测试依据。4个问题。1) 网页上显示名为“鱼”的标准是什么?2) 我们需要为此做些什么?3) 您是要在同一个元素中键入“fish”还是在其他元素中键入?4) 按
Enter
将显示名称更改为
“fish”
?相同的元素。按enter键会将DisplayName更改为“fish”。首先,元素在发送键后被填充,然后按enter键保存它,但程序会继续运行,每次填充完后都会额外键入一条fish。我只想知道如何检查元素==某个字符串,以便它执行某些操作(在本例中,停止)。
DisplayName
是元素,而不是文本。使用
DisplayName.text
DisplayName.get\u attribute(“value”)
如果它是
INPUT
标记等。可能重复的
DisplayName
是元素,而不是包含的文本。您需要使用
while(DisplayName.text!=“fish”):
或者如果它是
输入
,则需要检查元素的值。
DisplayName
是元素,而不是包含的文本。您需要使用
while(DisplayName.text!=“fish”):
或者如果它是
输入
,则需要检查元素的值。