簡體   English   中英

Selenium & Python:使用動態 XPATH 查找元素

[英]Selenium & Python: Finding elements with dynamic XPATH

我試圖從一個非常具體的href中提取url,這個站點有很多非常非常的html路由。 類似的,提取此 url 的唯一方法是通過按照我的方式構建的 XPATH。

但最大的問題是,它一直在變化,label 的一部分是 static 但另一個是動態的,有點隨機

html 如下所示: 注意: page_name ="Laura"是我可以使用的名稱 select

# Option 1
<span label="answer by Laura to Charles">
# Option 2
<span label="answer by Laura to Nina">
# Option 3
<span label="answer by Laura to Maria">
 <div >
  <a href="www.thisisawebsite.otherthings.blabla...>
# Option n
<span label="answer by Laura to THIS COULD BE ANY RANDOM NAME">
 <div >
  <a href="www.thisisawebsite.otherthings.blabla...>

我嘗試了不同的選擇:

get_comment = WebDriverWait(self.driver, 2).until(
                        EC.presence_of_all_elements_located((
                            By.XPATH,
                            r'//span[contains(text(), "answer by {}")]/div/a'.format(page_name)))
                    )[0].get_attribute('href')

其他嘗試:

get_comment = WebDriverWait(self.driver, 2).until(
                            EC.presence_of_all_elements_located((
                                By.XPATH,
                                r'//span[(@label="answer by {}")]/div/a'.format(page_name)))
                        )[0].get_attribute('href')

如果您將其更改為,第二個應該可以工作

get_comment = WebDriverWait(self.driver, 2).until(
                            EC.presence_of_all_elements_located((
                                By.XPATH,
                                r'//span[contains(@label,"answer by {}")]/div/a'.format(page_name)))
                        )[0].get_attribute('href')

使用 '=' 時,它會搜索完全相同的字符串。 這使您只能獲得其中的一部分

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM