如何解决如何使用 Selenium Python 单击 <a class href > 链接问题
嗨,我是 Selenium Python Webdriver 的新手。尝试使用无效的 Abc
点击链接 find_element_by_link_text
,
<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=0000&sid=-111111111">Abc</a>
我会感谢您的帮助。知道如何在这种情况下使用 xpath 吗?
<div id="favCol1" class="col-md-6 col-sm-6" style="padding: 2px; margin: 0px;">
<div id="favId2861214" class="elig-item">
<div title="Remove payer from favorites list" class="delete-favorite" data-itemname="Aetna" data-favid="2861214" data-dsid="28" data-lobid="1"></div>
<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=1111&sid=-000000">Abc</a>
<span class="side-text"></span>
</div>
<div id="favId2869169" class="elig-item">
<div title="Remove payer from favorites list" class="delete-favorite" data-itemname="CIGNA" data-favid="2869169" data-dsid="317" data-lobid="1"></div>
<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=0000&sid=-11111133323">efg</a>
<span class="side-text"></span>
</div>
<div id="favId2861157" class="elig-item">
<div title="Remove payer from favorites list" class="delete-favorite" data-itemname="Florida Blue" data-favid="2861157" data-dsid="35" data-lobid="1"></div>
<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=2323&sid=-1111111">xyz</a>
<span class="side-text"></span>
</div>
<div id="favId2861963" class="elig-item">
<div title="Remove payer from favorites list" class="delete-favorite" data-itemname="Humana" data-favid="2861963" data-dsid="82" data-lobid="1"></div>
<a class="favorite-link " href="https://onesource.passporthealth.com/_members/query/osusf/Default.aspx?dlpvid=1233&sid=-000021212">HIJ</a>
<span class="side-text"></span>
</div>
</div>
尝试过:
.find_element_by_xpath("//*[contains(@class,'favorite-link') and contains(text(),'Abc')]/a").click()
更新: 整个块都嵌入在一个 iFrame 中。这就是我无法访问的原因。不得不切换到那个框架。
解决方法
driver.find_element_by_link_text("Abc").click()
只需点击带有链接文本 Abc 的标签。
driver.find_element_by_xpath("//*[text()='Abc']").click()
,
要点击文本为 Abc 的元素,您可以使用以下任一 Locator Strategies:
-
使用
LINK_TEXT
:driver.find_element(By.LINK_TEXT,"Abc")
-
使用
XPATH
:driver.find_element(By.XPATH,"//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']").click()
理想情况下,要单击需要为 WebDriverWait 引入 element_to_be_clickable()
的元素,您可以使用以下任一 Locator Strategies:
-
使用
LINK_TEXT
:WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.LINK_TEXT,"Abc"))).click()
-
使用
XPATH
:WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='elig-item']//a[@class='favorite-link ' and text()='Abc']"))).click()
-
注意:您必须添加以下导入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。