python - Selenium with Python - 在选定元素之后查找元素
问题描述
我正在尝试查找链接文本,但在特定图像之后,但我找不到使用 Selenium 正确执行此操作的方法。我的代码就在下面
browser.get(URL)
browser.find_element_by_xpath('//img[@src="Images"]')
browser.find_element_by_partial_link_text("Bla").click()
我需要在特定的 xpath 之后开始我的部分链接文本选择。你知道一个简单的方法吗?
这是 html 页面的架构(它不是公开的,它只是它的一部分):
<tr style="background-color:#E5E5E5;font-size:9pt;">
<td align="center" style="width:70px;">05/03/2018</td><td align="center" style="width:40px;">
<img id="1" src="Images" style="border-width:0px;">
</td><td>
<span id="2"></span>
<a id="3" href="javascript:OuvreFenetre(3683826,241258727)">Blabla</a>
<span id="4"></span>
</td>
</tr>
我使用 scr="Images" 找到 img,但我需要在此之后选择超链接(在此处调用“Blabla”)。
解决方案
我可能会做这样的事情:
if driver.find_element_by_xpath('//img[@src="src"]').is_displayed():
driver.find_element_by_partial_link_text("words").click()
或者如果您想介绍WebDriverWait
,请按如下方式使用:(更可靠的解决方案)
wait = WebDriverWait(driver, 10)
if wait.until(EC.visibility_of_element_located((By.XPATH, "your xpath here"))).is_displayed():
driver.find_element_by_partial_link_text("words").click()
或者如果锚标签是图像标签的子标签,您可能可以这样做://img[@src="src"]/a[contains(@href, ' href here')]
进口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
更新 1:
您可以根据Image src选择锚标记,如下所示:
//img[contains(@src, 'Images')]/following-sibling::a
所以代替这两行:
browser.find_element_by_xpath('//img[@src="Images"]')
browser.find_element_by_partial_link_text("Bla").click()
您可以像这样使用上面的 xpath:
browser.find_element_by_xpath("//img[contains(@src, 'Images')]/following-sibling::a").click()
或者
//img[contains(@src, 'Images')]/following-sibling::a[contains(@href, 'javascript')]
更新 2:
使用下面的 xpath :
//img[contains(@src, 'Images')]/../following-sibling::td/a
推荐阅读
- c++ - 如何定义一个以捕获为参数的 lambda 的函数?
- python - 尝试在 PyQt5 GUI 中绘制 SQL 日期时间数据
- etcd - jetcd-core v0.5.10 keepAlive 在一段时间后通过调用 onComplete 终止
- solaris - Solaris NFS 网络组?
- html - 等边六边形带圆角,里面有边框和文字,我不能反映边框为什么?
- kubernetes - Kubernetes 是否支持具有子集散列的单个上游服务器的会话粘性
- filter - 有没有办法找出 pandoc lua 过滤器中的输出格式
- mysql - Redis 搜索中的 MySQL ORDER BY FIELD 等效项
- flutter - 颤振:需要一个“Widget”类型的值,但得到一个“Null”类型的值
- reactjs - 如何快速将大型表单发送到 REST API?