Python 有没有一种方法可以创建一个循环来搜索一个元素;如果找不到该元素,则;else/elif“;你会跑吗?
我想在在线游戏中搜索一个元素,该元素只会在我移动角色后随机出现Python 有没有一种方法可以创建一个循环来搜索一个元素;如果找不到该元素,则;else/elif“;你会跑吗?,python,Python,我想在在线游戏中搜索一个元素,该元素只会在我移动角色后随机出现 elements = driver.find_element_by_css_selector('p > .button-maroon') while True: if elements.is_displayed(): print('found it!') time.sleep(5) except NoSuchElementException: time.slee
elements = driver.find_element_by_css_selector('p > .button-maroon')
while True:
if elements.is_displayed():
print('found it!')
time.sleep(5)
except NoSuchElementException:
time.sleep(2)
pg.press('s')
我得到一个错误,表示无法定位元素。显然,元素不在那里,因此,它应该移动到下一行,即按下S按钮并循环返回,直到找到元素。我如何解决这个问题?应该可以
elements = driver.find_element_by_css_selector('p > .button-maroon')
while True:
try:
if elements.is_displayed():
print('found it!')
time.sleep(5)
break
except NoSuchElementException:
time.sleep(2)
pg.press('s')
不要对你的机器人发疯,在你这么做之前,确保游戏对你感到满意。:-) 这应该行得通
elements = driver.find_element_by_css_selector('p > .button-maroon')
while True:
try:
if elements.is_displayed():
print('found it!')
time.sleep(5)
break
except NoSuchElementException:
time.sleep(2)
pg.press('s')
不要对你的机器人发疯,在你这么做之前,确保游戏对你感到满意。:-) 您可以使用until方法和wait-for元素 代码如下所示:
while True:
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'p > .button-maroon'))
)
print('found it!')
time.sleep(5)
except Exception:
time.sleep(2)
pg.press('s')
您可以使用until方法和wait-for元素 代码如下所示:
while True:
try:
element = WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.CSS_SELECTOR, 'p > .button-maroon'))
)
print('found it!')
time.sleep(5)
except Exception:
time.sleep(2)
pg.press('s')
我尝试过显式等待,但它不起作用,因为我正在寻找的元素只会在游戏中移动后随机填充,但你需要一段时间,所以它会一直搜索,是吗?是的,我在一段时间内是真的,但它似乎没有循环我尝试过显式等待,但它不起作用,因为我正在寻找的元素只会在游戏中移动后随机填充,但你在一段时间内,所以它会一直搜索,对吗?是的,我在一段时间内是真的,但它似乎没有循环,我得到一个错误,消息:没有这样的元素:无法找到元素。我不确定为什么代码不会继续到下一行。我收到一个错误,消息:没有这样的元素:无法找到元素。我不知道为什么代码不会继续到下一行