2つの異なるページで同じテストでmove_to_elementを実行しようとしています(破損することなく)StaleElementException
がスローされています。 テストは基本的に電子商取引のウェブサイトです。カートに追加するオプションを得るためには、商品の上にマウスを置かなければなりません。ホームページでは、商品のカテゴリに移動するためにメニューを表示する必要があります。1つのテストで1ページだけマウスオーバーを行うことができます
私は以下の関数を使用しています(これは私が使用しているものです)。ポップアップがある状況を処理して終了し、再度試行します。
@staticmethod
def hover_over(some_element):
try:
action.move_to_element(wait.until(EC.visibility_of_element_located((some_element)))).perform()
except WebDriverException:
try:
pop = browser.find_element(*popup_exit_class)
pop.click()
wait.until(EC.visibility_of_element_located((some_element)))
action.move_to_element(wait.until(EC.visibility_of_element_located((some_element)))).perform()
私も機能せずに試してみました:
x = browser.find_element(*some_element)
action.move_to_element(x).perform()
sleep(0.5)
browser.find_element(*some_other_element).click()
を、それは私がウェブ要素が装着されているのUbuntu 14.04
お返事ありがとうございます。私はロケータを使用しています。私は関数に渡すすべての要素が(By.method、 "selector_or_whatever")の形式で存在するlocators.pyファイルを持っています。例:func.hover_over(header.mini_cart)ここで、header.mini_cartはmini_cart =(By.ID、 "cartHeader") –
私は気づいていませんが、実行するたびに 'ActionChains'をインスタンス化する必要もあります'。 –