Python-无法在工具提示下的Selenium中单击按钮,网页引发请求错误

时间:2018-10-26 19:40:42

标签: python selenium

这是我要单击的元素(信息按钮)。它位于pokemongomap.info上,您可以在任何pokestop或健身房下的chrome devtools中看到它。

<a href="#" target="_self" class="tooltip tooltipstered" id="infoboxmoreinfobtnbind" style="display: inline;">
    <div id="infoboxmoreinfohit"></div>
    <div id="infoboxmoreinfobtn" class="infoboxbtn">
        <i class="fa fa-info-circle" aria-hidden="true" style="color: rgb(57, 135, 140);">

        </i>
    </div>
</a>

我无法使用ActionChains,element.click()或其他任何东西来单击它。如果尝试使用任何一种方法单击它,都会从网站收到请求错误。谁能帮我?这是我尝试过的一些代码。

wait = WebDriverWait(driver, 10)
actions = Actions(driver)
element = wait.until(EC.element_to_be_clickable((By.ID, 'infoboxmoreinfobtnbind')))
#element = wait.until(EC.element_to_be_clickable((By.XPATH, '//i[@class="fa fa-info-circle"]'))) also throws error when clicked

#actions.move_to_element(element).click(element).perform() doesn't work either.

action = actions.move_to_element(element)
action.click()
action.perform()

我还尝试过使用ActionChains或element.click()单击其他信息框元素,它们要么不执行任何操作,要么给出请求错误,或者此时无法单击。

1 个答案:

答案 0 :(得分:0)

万不得已,您可以将JS与execute_script一起使用:

wait = WebDriverWait(driver, 10)
actions = Actions(driver)
element = wait.until(EC.element_to_be_clickable((By.ID, 'infoboxmoreinfobtnbind')))

driver.execute_script("$(arguments[0]).click();", element)

这不是类人的自动化,但它应该可以完成工作...

希望这对您有帮助!