0

我正在尝试自动化网站上的流程,该流程会为其元素动态生成 ID:

Id 具有以下形式:ZCODE:FORM:j_1279323:element

我设法为大多数元素制作了 CSS 或 XPATH 选择器。我正在努力使用一个ul/li我设法用它id而不是相对 XPath 来点击的元素,这是我的目标:

我尝试了各种xpath: /html[1]/body/[1]/div[37]/div[1]/ul[1]/li[13]

还: //div[contains(@id, 'voie_panel')]/div/ul/li[13]

以及许多其他不同的方式.. 我测试的所有 xpath/css 选择器在 chrome 开发者控制台中都能完美运行。

我只设法将列表下拉,但是当我尝试访问列表元素时......它超时。

我正在使用WebDriverWait,我还尝试在必须加载程序的确切位置暂停程序才能单击列表。

我等待元素:

myElem = WebDriverWait(self.driver, 30).until(ec.element_to_be_clickable((BY.XPATH, css))

总结一下情况:它可以顺利使用 ID,但使用 xpath 或 css 选择器会超时

有人可以推荐一种策略来克服这个问题吗?

4

1 回答 1

0

如果您使用的是 selenium web 驱动程序,您可以将其添加到您的代码中

    chrome_options = webdriver.ChromeOptions()
    scpathTemp = str(scpathTemp).replace('/', '\\').strip()
    preferences = {"safebrowsing.enabled": True}
    chrome_options.add_experimental_option("prefs", preferences)

    driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=master_path + "/chromedriver.exe")
    driver.find_element_by_xpath("/html[1]/body/[1]/div[37]/div[1]/ul[1]/li[13]").click()
于 2019-11-08T15:30:39.217 回答