UI自动化遇到element click intercepted
2020-12-17 本文已影响0人
二十尹
原代码为:
self.driver.find_element_by_xpath('/html/body/div[1]/div[1]/div/div/button').click()
报错:
element click intercepte
解决方法:
通过执行js脚本点击该元素。Webdriver
对部分浏览器上的控件时不支持直接驱动的,例如滚动条、时间控件,所以我们需要执行JS脚本,间接完成这些操作
@logger_doc()
def submit(self):
"""需要滚动才能看见的按钮"""
self.screen(doc=self.submit.__doc__)
submit_btn = self.find_element_by_xpath(
'//*[@id="project"]/div[3]/div[2]/div/div[2]/div/div/button')
return self.driver.execute_script("arguments[0].click();", submit_btn)
页面自动下滑至某元素可见:
ele_s = web_driver.find_elements_by_css_selector('#project > div:nth-child(3) > div.l-out-dialog > 'div > div.l-dialog-content > div > div > button')
ele = ele_s[0]
web_driver.execute_script('arguments[0].scrollIntoView();', ele) # 定位至ele可见
firm_page.submit()
assert firm_page.find_element_exist_by_xpath(firm_page.follow_window())
成功啦