select 具有不断变化的 xpath 的元素
select element with changing xpath
Example Image
说我想 select 带有 class=kbkey 按钮的元素 red_selected 选择。图片中示例的 xpath 为 //*[@id="virtualKeysWrapper"]/div[3],所以我有以下代码:
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="virtualKeysWrapper"]/div[3]'))).click()
但是,每次我刷新站点时,该元素的 div 位置都会发生变化。想知道我应该怎么做才能成功 select 元素 class=kbkey 按钮 red_selected sel 每次都成功?
出于这个原因,尽可能避免在 XPath 中使用索引位置。在不知道 DOM 的其余部分到底是什么样子的情况下,我最好的猜测是您可以使用以下表达式:
//div[@id='virtualKeysWrapper']/div[@class='kbkey button red_selected sel']
或者,您可以使用
//div[@id='virtualKeysWrapper']/div[@sel='true']
Example Image
说我想 select 带有 class=kbkey 按钮的元素 red_selected 选择。图片中示例的 xpath 为 //*[@id="virtualKeysWrapper"]/div[3],所以我有以下代码:
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="virtualKeysWrapper"]/div[3]'))).click()
但是,每次我刷新站点时,该元素的 div 位置都会发生变化。想知道我应该怎么做才能成功 select 元素 class=kbkey 按钮 red_selected sel 每次都成功?
出于这个原因,尽可能避免在 XPath 中使用索引位置。在不知道 DOM 的其余部分到底是什么样子的情况下,我最好的猜测是您可以使用以下表达式:
//div[@id='virtualKeysWrapper']/div[@class='kbkey button red_selected sel']
或者,您可以使用
//div[@id='virtualKeysWrapper']/div[@sel='true']