我碰上的3种情况以及解决方法 :
1.是由于网络问题,需要加上时间等待,如下代码
# 勾选第一个对比按钮 self.contrast.click_comparea_one() time.sleep(1)
2.情况是因为元素被覆盖了,点击失败
方法一js注入:
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
driver.execute_script("arguments[0].click();", element)
方法二ActionChains,需要先导包:
导包代码如下:from selenium.webdriver import ActionChains
操作方法代码:
element = driver.find_element_by_css('div[class*="loadingWhiteBox"]')
webdriver.ActionChains(driver).move_to_element(element ).click(element ).perform()
3.是因为有滚动条,找不到位置,且被覆盖,需先滚动到定位元素位置,在进行操作,点击输入等情况,这种情况第二种方法是定位点击不了的:
# 选定下拉框,下拉至固定位置 # 设置JavaScript脚本控制滚动条(0:左边距;1000:上边距;单位像素) js = "window.scrollTo(0,300)" # selenium调用执行JavaScript脚本的方法 self.driver.execute_script(js) # 勾选第三个对比按钮 self.contrast.click_comparea_three() time.sleep(1)