这是我要单击的元素(信息按钮)。它位于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()单击其他信息框元素,它们要么不执行任何操作,要么给出请求错误,或者此时无法单击。
答案 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)
这不是类人的自动化,但它应该可以完成工作...
希望这对您有帮助!