Python Selenium 从内联锚获取 link_text
Python Selenium Getting link_text from an anchor that is inline
在 selenium 中如何正确编写 xpath 或 css_selector
解析html如
<div class="fxg-rte " style="color:;" data-emptytext="Rich Text">
<p>United States | <a href="https://www.fedex.com/en-us/home.html">English</a>
| <a href="https://www.fedex.com/es-us/home.html">Español</a></p>
<p>China | <a href="https://www.fedex.com/en-cn/home.html">English</a>
| <a href="https://www.fedex.com/zh-cn/home.html">简体中文</a></p>
<p>Mexico | <a href="https://www.fedex.com/en-mx/home.html">English</a>
| <a href="https://www.fedex.com/es-mx/home.html">Español</a></p>
<p>India | <a href="https://www.fedex.com/en-in/home.html">English</a></p>
<p>Canada | <a href="https://www.fedex.com/en-ca/home.html">English</a>
| <a href="https://www.fedex.com/fr-ca/home.html">Français</a></p>
</div>
执行以下操作:
查找任何包含文本“United States”的 <p>
元素
然后在元素中找到任何具有“English”的 link_text
然后点击 link.
具体来说,我只想在
标签内查看 link_text
给定标准。
试试下面的 xpath :
//div[@data-emptytext='Rich Text']//p
会有几个 p 标签,您可能需要使用 find_elements
而不是 find_element
。
在代码中是这样的:
driver.maximize_window()
driver.get("https://www.fedex.com/global/choose-location.html")
wait = WebDriverWait(driver, 10)
for names in driver.find_elements(By.XPATH, "(//div[contains(@class, 'richtext parbase section')])[1]/descendant::p"):
print(names.get_attribute('innerHTML'))
if "United States" in names.get_attribute('innerHTML'):
print("matched")
lang_href = names.find_element(By.XPATH, "((//div[contains(@class, 'richtext parbase section')])[1]/descendant::p/a[1])[1]")
lang_href.click()
break
在 selenium 中如何正确编写 xpath 或 css_selector 解析html如
<div class="fxg-rte " style="color:;" data-emptytext="Rich Text">
<p>United States | <a href="https://www.fedex.com/en-us/home.html">English</a>
| <a href="https://www.fedex.com/es-us/home.html">Español</a></p>
<p>China | <a href="https://www.fedex.com/en-cn/home.html">English</a>
| <a href="https://www.fedex.com/zh-cn/home.html">简体中文</a></p>
<p>Mexico | <a href="https://www.fedex.com/en-mx/home.html">English</a>
| <a href="https://www.fedex.com/es-mx/home.html">Español</a></p>
<p>India | <a href="https://www.fedex.com/en-in/home.html">English</a></p>
<p>Canada | <a href="https://www.fedex.com/en-ca/home.html">English</a>
| <a href="https://www.fedex.com/fr-ca/home.html">Français</a></p>
</div>
执行以下操作:
查找任何包含文本“United States”的 <p>
元素
然后在元素中找到任何具有“English”的 link_text
然后点击 link.
具体来说,我只想在
标签内查看 link_text
给定标准。
试试下面的 xpath :
//div[@data-emptytext='Rich Text']//p
会有几个 p 标签,您可能需要使用 find_elements
而不是 find_element
。
在代码中是这样的:
driver.maximize_window()
driver.get("https://www.fedex.com/global/choose-location.html")
wait = WebDriverWait(driver, 10)
for names in driver.find_elements(By.XPATH, "(//div[contains(@class, 'richtext parbase section')])[1]/descendant::p"):
print(names.get_attribute('innerHTML'))
if "United States" in names.get_attribute('innerHTML'):
print("matched")
lang_href = names.find_element(By.XPATH, "((//div[contains(@class, 'richtext parbase section')])[1]/descendant::p/a[1])[1]")
lang_href.click()
break