在Selenium中找到一个dymanic元素:“元素不可见”错误

时间:2017-08-11 16:29:39

标签: python-3.x selenium xpath selenium-webdriver

我正在尝试使用Selenium自动化流程。我几乎总是使用:

driver.find_element_by_xpath('xpath')

找到所需的元素。当我完成整个过程时,我最终点击了一个打开对话框的元素:

http://imgur.com/a/NUoIM

我想点击的元素如下所示:

http://imgur.com/1Zle5zG

问题是xpath和id都是动态的,所以每次创建一个新会话时,我处理的信息都略有不同。

我使用以下内容找到元素:

driver.find_element_by_xpath('//div[contains(@id, "56$187009")]/div[contains(@class, "gwt")]')

但是当我尝试send_keys到元素时,我收到以下错误:

selenium.common.exceptions.ElementNotVisibleException: Message: element not visible

我可以看到屏幕上的元素,但似乎驱动程序找不到它。我试着用:

driver.switch_to_alert()

1 个答案:

答案 0 :(得分:1)

尝试以下代码行:

driver.find_element_by_xpath("//div[starts-with(@id, '56')][@class='WN5Q WCAR WCU']/input[contains(@class, 'gwt-TextBox WO5Q WBAR')]")