所以我想点击此元素:
// * [@ id =“ ember1720”]
但是Selenium告诉我找不到它。我正在执行以下操作:let viewController = self // I had viewController passed in as a function,
// but otherwise you can do this
// Present the view controller
let currentViewController = UIApplication.shared.keyWindow?.rootViewController
currentViewController?.dismiss(animated: true, completion: nil)
if viewController.presentedViewController == nil {
currentViewController?.present(alert, animated: true, completion: nil)
} else {
viewController.present(alert, animated: true, completion: nil)
}
我已经在python官方网站上尝试了相同的程序,并且在该网站上可以完美运行。
非常感谢。
答案 0 :(得分:1)
首先确保元素已正确加载:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
...
WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.XPATH, """//*[@id="ember1720"]""")))
或者也许:
WebDriverWait(driver, 20).until(
EC.element_to_be_clickable((By.XPATH, """//*[@id="ember1720"]""")))
或者,尝试通过id查找元素:
driver.find_element_by_id('ember1720').click()
过去,我遇到的问题是我可以通过元素ID而不是xpath找到元素。
答案 1 :(得分:1)
我不确定这是否是您的确切问题,但是取决于这样的ID(似乎是自动生成的)并不是一个好习惯。 请阅读my blog post,以了解选择最佳定位器的最佳做法。