硒找不到元素(xpath)

时间:2018-09-29 23:01:37

标签: python-3.x selenium

所以我想点击此元素:

  

// * [@ 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官方网站上尝试了相同的程序,并且在该网站上可以完美运行。

非常感谢。

2 个答案:

答案 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,以了解选择最佳定位器的最佳做法。