Python selenium id号是动态的

Python selenium id号是动态的,selenium,python-3.8,Selenium,Python 3.8,我有一个html,如下所示: <div class="v-window-outerheader"><div class="v-window-maximizebox" tabindex="0" role="button" aria-label="maximize button" id="38_window_maximizerestore"></div> <div class="v-window-closebox" tabindex="0" role

我有一个html,如下所示:

<div class="v-window-outerheader"><div class="v-window-maximizebox" tabindex="0" role="button" aria-label="maximize button" id="38_window_maximizerestore"></div>
    <div class="v-window-closebox" tabindex="0" role="button" aria-label="close button" id="38_window_close"></div>
但是,ID号
37\u window\u close
经常变化。今天的id是
38\u window\u close
其余的html代码保持不变。如何修改代码,使代码不会因ID的更改而中断

弹出框如下所示,其中
X
位于右上角,可将其关闭:

使用
aria label=“close button”
属性

wait.until(EC.presence_of_element_located((By.XPATH, '//*[@aria-label="close button"]'))).click()
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@class="v-window-closebox"]'))).click()
或类属性

wait.until(EC.presence_of_element_located((By.XPATH, '//*[@aria-label="close button"]'))).click()
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@class="v-window-closebox"]'))).click()
或者使用id为的contains

wait.until(EC.presence_of_element_located((By.XPATH, '//*[contains(@id,"_window_close")]'))).click()
使用
aria label=“close button”
属性

wait.until(EC.presence_of_element_located((By.XPATH, '//*[@aria-label="close button"]'))).click()
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@class="v-window-closebox"]'))).click()
或类属性

wait.until(EC.presence_of_element_located((By.XPATH, '//*[@aria-label="close button"]'))).click()
wait.until(EC.presence_of_element_located((By.XPATH, '//*[@class="v-window-closebox"]'))).click()
或者使用id为的contains

wait.until(EC.presence_of_element_located((By.XPATH, '//*[contains(@id,"_window_close")]'))).click()

对于动态ID,可以匹配子字符串而不是精确的字符串。 使用以下XPath:

//div[contains(@id,"_window_close")]
或CSS:

div[id*="_window_close"]

希望这有帮助:)

对于动态ID,您可以匹配子字符串而不是精确的字符串。 使用以下XPath:

//div[contains(@id,"_window_close")]
或CSS:

div[id*="_window_close"]
希望这有帮助:)