基本上,我需要单击一个按钮,该按钮位于网页框架内。我尝试过:
1)切换到框架,效果很好,不会返回任何错误:
driver.switch_to.frame(driver.find_element_by_css_selector('#iframe'))
3)增加20秒的延迟,因为最后只是超时而不会改变结果:
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "dx-button"))).click()
我相信CSS元素的名称是正确的,因为我已使用开发人员模式->复制选择器将其复制。
我还可以做些其他的事情来让硒找到这个CSS元素吗?
添加时间延迟之前出错:
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"dx-button"}
添加时间延迟后出现错误:
selenium.common.exceptions.TimeoutException: Message:
谢谢。
答案 0 :(得分:0)
可以检查是否已切换的iframe是带有按钮的准确iframe。
如果正确,可以使用XPATH定位符尝试同一行吗?
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[contains(@class, 'button')]"))).click()