Selenium-WebDriver提供WebDriver API,用于控制不同编程语言的浏览器(“语言绑定”)。使用此标记时,还要为正在使用的编程语言添加标记。
如何使用 Selenium + Python 根据另一个元素中包含的文本单击正确的链接?
我有一个像这样的html结构 我有一个像这样的html结构 <tbody> <tr role="row" class="odd"> <td class="text-center dtr-control"></td> <td class="text-center"> <a href="#" class="px-2 text-dark" onclick="bookPatient('1351','')"> <i class="fa-solid fa-pen-to-square cursor-pointer fa-lg"></i> <i class="fa-solid fa-pen-to-square cursor-pointer fa-lg"></i> </a> </td> <td>Dedeh</td> <td class="text-center">Female</td> <td class="text-center">07/02/1983</td> <td class style>PT MAJU JAYA</td> </tr> <tr role="row" class="odd"> <td class="text-center dtr-control"></td> <td class="text-center"> <a href="#" class="px-2 text-dark" onclick="bookPatient('1352','')"> <i class="fa-solid fa-pen-to-square cursor-pointer fa-lg"></i> <i class="fa-solid fa-pen-to-square cursor-pointer fa-lg"></i> </a> </td> <td>Mira</td> <td class="text-center">Female</td> <td class="text-center">17/10/2002</td> <td class style>PT MAJU JAYA</td> </tr> </tbody> 我期望 Selenium 在检查是否有相应的 <a> 值后单击 searched_text_bod 元素。当我尝试使用此代码时,输出始终无法识别 <a> 中的 <td> 元素。 该网站的元素上没有类或 ID,所以我遇到了困难。 searched_text_bod = "20/03/1990" # Improved XPath targeting based on confirmed structure base_xpath = "//tbody/tr[@role='row']" patient_row_xpath = f"{base_xpath}/td[text()='{searched_text_bod}']" try: # Find patient row containing the exact date of birth patient_link = WebDriverWait(driver, 10).until( EC.presence_of_element_located((By.XPATH, patient_row_xpath))) edit_patient_info = patient_link.find_element(By.XPATH, "/following-sibling::td/a") if patient_link: print(f"Found patient with date of birth: {searched_text_bod}") edit_patient_info.click( ) # Click on the 'a' element (assuming it's the link) else: print( f"Patient with date of birth '{searched_text_bod}' not found using DoB search" ) 当我需要创建一个有点复杂的自定义 XPath 时,我会经历一个过程,就像这个一样。我分步骤构建 XPath,验证每个步骤是否返回我想要的元素。我认为这比从头开始创建最终的 XPath,发现它不起作用,然后尝试排除故障更容易、更快。 目标是找到同时包含带有 DOB 的 TD 和我们要点击的 A 标签的 TR。这样我们就确保了 DOB 和链接位于同一表行中。 我做的第一件事就是找到包含 DOB 的 TD 元素 //tr/td[text()='17/10/2002'] 考虑到您现有的 XPath,您似乎可以控制这一步。现在这就是开始变得棘手的地方。 重新排列 XPath,使其返回 TR 而不是 TD //tr[./td[text()='17/10/2002']] 现在我们只需要从TR中找到A即可 //tr[./td[text()='17/10/2002']]/td/a 如果您还没有准备好,您想使用浏览器中的开发工具控制台来测试您的定位器。使用 $x() 作为 XPath,使用 $$() 作为 CSS 选择器。最终的 XPath 是 $x("//tr[./td[text()='17/10/2002']]/td/a") 有关 Chrome 开发工具的更多信息,请参阅文档。 从这里,我们可以更新代码... wait = WebDriverWait(driver, 10) searched_text_dob = "17/10/2002" links = wait.until(EC.visibility_of_all_elements_located((By.XPATH, f"//tr[./td[text()='{searched_text_dob}']]/td/a"))) if links: links[0].click() else: print(f"Patient with date of birth '{searched_text_dob}' not found using DoB search")
我正在尝试使用 python 中的 selenium 和 chrome 使用无头模式自动登录 https://login.upstox.com Chrome浏览器版本:123.0.6312.58 chromedriver版本:123.0.6312.58
我刚开始使用Python的selenium模型,在尝试自动化这家商店的结账过程时遇到了问题,https://bellevo.store/products/luna。 我有 python 点击立即购买然后...
我的 geckodriver.exe 有问题。 我要创建一个机器人,但我不知道如何设置 mozilla 驱动程序。 从硒导入网络驱动程序 geckodriver_yolu = "./geckodriver.exe"
Python Selenium:返回空白输出而不是实际的跨度文本
我想要来自网站元素的文本“March”:https://www.greateranglia.co.uk/ 第 1 步:单击日历图标 意图:日历出现后,我想获取月份文本。 步骤 2...
在使用 Selenium (Python) 之前如何执行页面上的所有 JavaScript?
我有一个网页,我试图使用 Selenium 和 Python 来查找其中的特定元素。 我遇到的问题是我试图找到的所有元素都是动态生成的......
我在“获取文本”命令上收到过时元素异常。 这是代码: 获取文本 [参数] ${定位器} 等待条件返回 document.readyState=="complete" 等到页面
我正在使用 python 测试 selenium,我需要从下拉列表中选择一个选项。 在这种情况下,我正在使用网站 https://www.motogp.com/es/gp-results/2024/qat/motogp/rac/classification 进行测试,我...
尝试所有元素属性后,使用 RubyMine 使用 Selenium 时出现 NoSuchElementError
我想为这个网站编写一些测试:https://roomy-fire-houseboat.glitch.me/,但无法找到任何元素。我可以启动该网站,然后添加 5 秒的睡眠时间。 这是
我一直在使用 selenium 并咨询不同的帮助资源来解决错误。我发现有时所使用的定位器的语法略有不同。 这我...
当我尝试使用 iOS 17.2 在 Xcode 上测试 webdriveragent 时,我以前从未收到此消息,但现在它一直说它将按需连接。 Web 驱动程序代理永远不会安装在
我试图让selenium使用公司代理服务器来下载网络驱动程序。但这一直失败。我可以使用代理来手动使用下载。 从硒导入网络驱动程序 班级
我被这个问题困扰了很长一段时间。 所以我使用 Selenium 进行网页抓取,并且陷入了从 html 中提取文本的困境。我尝试查看有关该主题的其他答案,但没有看到
Allure 没有在 onTestFailure() 方法中添加附件?
当任何测试失败时,我尝试将屏幕截图添加到诱惑报告中。该文件会在相应的文件夹 (/allure-results) 中创建,但附件不会添加到报告中。空调...
在Selenium中,如何在iframe下点击HMTL下的某个元素。所以层次结构从大到小:iframe>#document>HTML。我添加了屏幕截图
在此输入图像描述 我切换到该 iframe,但仍然无法访问 HTML 下的元素。请注意#document没有css选择器或xpath,我认为它不是一个元素。 ...
Java - Selenium - 无法找到 CDP 版本 94 的精确匹配,因此返回找到的最接近的版本:93
我是 Selenium 新手,在运行代码时遇到有关 CDP 版本的错误。 这是我的代码。很简单,目的是登录某个网页。驱动程序打开,填写电子邮件和密码...
我尝试使用未检测到的 chromedriver 和以下代码启动 youtube: 将 unDetected_chromedriver 导入为 uc 如果 __name__ == "__main__": 驱动程序 = uc.Chrome(无头=True) 驱动程序.g...
Selenium firefox webdriver 无法更新 gecko(tcp 连接错误)
我正在一个专用项目中添加 Selenium 测试来测试 Web 应用程序。该项目使用java 17,它具有以下依赖项 org.seleniumhq.seleniu...
通过 selenium 进行日志记录是否被 twitter 屏蔽了?
即使使用 selenium 具有有效凭据,也无法登录 Twitter。 Elements 接受凭据并验证它们,但登录后不会重定向到主页。 登录详细信息和主要...
我正在使用Python在Selenium中编写自动化测试。一个元素可能存在也可能不存在。我试图用下面的代码来处理它,它在元素存在时起作用。但是当 eleme 时脚本失败...