- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在一个网站上有多个表格,我需要找到包含文本“blabla”的元素的表格,然后在同一个表格中我将按下一个按钮,我试过这个:
a = browser.find_element_by_xpath(f'//*[contains(text(),"blabla")]')
b = a.find_element_by_xpath('..')
browser.find_element_by_xpath(f'{b}/btn').click()
b --> <selenium.webdriver.remote.webelement.WebElement (session="0c5008a89c2da6d4b2e83f4237afc6ba", element="ef8fddcc-88fb-4947-b2c2-2e5ac400b5a1")>
但它告诉我这是一个无效的 xpath,因为 b 不是 xpath,而是我不明白的其他东西,所以有没有人知道如何正确地做到这一点?或者如果可能的话
编辑:这是一个表格的例子
<tr style="height:30px;">
<td valign="top" style="width:50px;">
<b>Code:</b><br>
<a href="editcourse_lookup.aspx?coursecode=SB32173" target="_blank">
SB32173
</a>
<br>
<br>
Azan - Tajweed ul Quran Level 1
<br>
<a href="javascript:void(0);" onclick="window.open('learningplan_welcome.aspx?coursecode=SB32173&teacherid=365&studid=13150&regNo=22478','windowname1','width=900, height=600');return false;" target="_blank">View Report</a>
<br>
<a href="javascript:void(0);" onclick="window.open('Convert-report.aspx?coursecode=SB32173&teacherid=365&studid=13150&regNo=22478','windowname1','width=550, height=180');return false;" target="_blank">Convert Report</a>
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblpuseddetails_0"></span>
<br>
<br>
<a href="editsubs.aspx?mode=Modify&courseCode=SB32173&sid=13150&uid=musafdar@uncg.edu&g=All&type=s&parentpage=y" target="_blank">Edit</a>
<br>
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblSubjectdetails_0" style="font-size:10px;"><b>Member Name:</b>Osman Khan<br><b>Subject:</b>Tajweed ul Quran Level 1<br><b>Curriculum:</b><br><b>Material:</b>Tajweed ul Quran Level 1</span>
</td><td align="center" style="width:130px;">
Wed, 04 Aug 2021
-
Wed, 29 Sep 2021
<br>
Wed, 1:00 AM - 2:00 AM<br>Fri, 1:00 AM - 2:00 AM<br>Sun, 3:00 PM - 4:00 PM
<br>
<a href="editCourse1To1.aspx?mode=Modify&courseCode=SB32173" id="ContentPlaceHolder3_gv_1To1CourseDetails_a_EditCourse_0" style="color: Blue;">Modify</a><br>
<a id="ContentPlaceHolder3_gv_1To1CourseDetails_a_NewSubscr_0" style="color: Blue;cursor:pointer;" title="Book New Subscription" onclick="window.open('addcourse_1To1.aspx?reg=old&mode=new&catid=1&coursecode=SB32173&studentid=13148&username=Irfan safdar&timezone=13&country=869&sid=13150&g=All&type=s','windowname1','location=1,status=1,scrollbars=1,width=900, height=650')">
Book New Subscription
</a>
<br><br>
<a onclick="return confirm('Are you Sure to Reschedule ?');" id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkReschedule_0" title="Click to Reschedule" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkReschedule','')">Reschedule</a>
</td><td align="center">
Fri, 1:00 AM - 2:00 AM<br>Sun, 3:00 PM - 4:00 PM<br>Wed, 1:00 AM - 2:00 AM<br>20<br>0.00<br><a href="popup/updatesubscriptionpackage.aspx?coursecode=SB32173&sid=13150&subsno=155534" target="_blank">Amend Default Subscription</a><br><br><a href="popup/Reschedule_Remaining_classes.aspx?coursecode=SB32173&mode=CD" target="_blank">Amend Current Subscription</a>
</td><td align="center">
Mohamed Sawy
<br>
<a href="Send_Email.aspx?emailcode=Teacher_Confirm&coursecode=SB32173&back_sid=13150&back_g=All&back_type=s">
Confirm()</a>
<br>
<a href="Send_Email.aspx?emailcode=Teacher_Cancel&coursecode=SB32173&back_sid=13150&back_g=All&back_type=s">
Cancel()</a>
<br><a target="_blank" href="PopUp/createmessage.aspx?mode=Teacher&tid=365"><img src="images/email.jpg" width="25" height="19"></a><a target="_blank" href="PopUp/SMSText.aspx?mode=Teacher&tid=365"><img src="images/text.jpeg" width="22" height="20"></a><a target="_blank" href="PopUp/call.aspx?mode=Teacher&tid=365" '=""><img src="images/iphone-call-icon.jpg" width="22" height="20"></a><a target="_blank" title="Student Notes" href="PopUp/teachernotes.aspx?tid=365" '=""><img src="images/notes.jpeg" width="22" height="20"></a>
<br>
<a href="popup/Update_Teacher.aspx?coursecode=SB32173" target="_blank">Change Teacher</a>
<br><br><a href="https://secure.examhelper.org/eaalim/teacher/calendar/default.aspx?tid=365" target="_blank">View Teacher Calendar</a>
</td><td align="center" style="width:50px;">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblinvoiceno_0">22478</span><br>
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblinvoicedate_0">Wed, 04 Aug 2021</span>
</td><td align="center" style="width:50px;">
<a href="SendInvoice_1To1.aspx?coursecode=SB32173&back_sid=13150&back_g=All&back_type=s">
Invoice(0)</a>
</td><td align="center">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblNoOfLessons_0">20</span>
</td><td align="center" style="width:50px;">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblAttended_0">0</span>
</td><td align="center" style="width:50px;">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblAbsent_0">1</span>
</td><td align="center">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblMarkup_0">0 out of 5</span><br>
<a href="javascript:void(0);" onclick="window.open('edit-markup.aspx?coursecode=SB32173','windowname1','width=400, height=180');return false;" target="_blank">Modify</a>
</td><td align="center" style="width:50px;">
19
<hr>
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblTotalLessonHtml_0" style="font-size:9px;"><b>Total Lessons:</b>20<br><b>Total Hrs:</b>20<br><b>Total Lessons Left:</b>19<br><b>Total Hrs Left:</b>5<br><b>Total Extra Lessons Left:</b>0<br><b>Total Extra Hrs Left:</b>0mins<br><b>Total Free Lessons Left:</b>0<br><b>Total Free Hrs Left:</b>0mins</span>
<hr>
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblmissinglessons_0">20/20=0 missing</span>
</td><td align="right" style="width:50px;">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblcoursefee_0">0 £</span>
</td><td align="center">
<a href="viewlessons.aspx?courseid=SB32173&regno=22478&cname=Azan - Tajweed ul Quran Level 1" target="_blank">View</a><br><br><br>
<a href="popup/addCourseLesson.aspx?id=SB32173" target="_blank">
Add Lessons
</a>
</td><td align="center">
<span id="ContentPlaceHolder3_gv_1To1CourseDetails_lblBooked_0">Enroled </span>
</td><td align="center">
<a onclick="return confirm('Are you Sure to change Live Chat Status ?');" id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkLiveChatStatus_0" title="Click to Active/InActive" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkLiveChatStatus','')">Active</a>
</td><td align="center">
Active
<select name="ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlStatus" onchange="return ShowConfirm(this);setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlStatus\',\'\')', 0)" id="ContentPlaceHolder3_gv_1To1CourseDetails_ddlStatus_0" style="border-color:#999999;border-width:1px;border-style:Solid;font-family:Verdana;font-size:11px;">
<option selected="selected" value="">Change Status</option>
<option value="Active">Active</option>
<option value="Archive">Archive</option>
<option value="Inactive">Inactive</option>
<option value="Cancelled">Cancelled</option>
</select>
<br> <br>
<select name="ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlAction" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlAction\',\'\')', 0)" id="ContentPlaceHolder3_gv_1To1CourseDetails_ddlAction_0" style="border-color:#999999;border-width:1px;border-style:Solid;font-family:Verdana;font-size:11px;width:170px;">
<option selected="selected" value="">Pause Course - select</option>
<option value="Pause Course">Pause Course with pending lessons</option>
</select>
</td><td align="center">
</td><td align="center">
<select name="ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$drpwhiz" id="ContentPlaceHolder3_gv_1To1CourseDetails_drpwhiz_0" style="border-color:#999999;border-width:1px;border-style:Solid;font-family:Verdana;font-size:11px;">
<option selected="selected" value="999,zoomfree">Zoom Free</option>
<option value="1,braincert">Braincert</option>
<option value="1,wiziq">WizIQ 25</option>
<option value="2,wiziq">WizIQ 100</option>
<option value="3,wiziq">WizIQ 500</option>
</select>
<br>
<a id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkswhiz_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkswhiz','')">Go</a>
<br>
<a onclick="alert('You have already generated the lesson url for this course.');" id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkGenUrl1_0" title="Already Generated" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkGenUrl1','')">Generated</a>
<hr>
<a onclick="return confirmGenUrl();" id="ContentPlaceHolder3_gv_1To1CourseDetails_LinkButton1_0" title="Click to Generate url" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$LinkButton1','')">Re-Generate Existing URL</a>
</td><td align="center">
<a onclick="return confirm('Are sure want to request for ecertficate?');" id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkRequestCertificate_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkRequestCertificate','')">Request eCertificate(0)</a>
<br>
<a href="Certificate-logs.aspx?coursecode=SB32173" target="_blank">Send Certificate</a>
<br>
<a onclick="return confirm('Are you Sure to Delete ?');" id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkactive11_0" title="Click to Delete" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkactive11','')">Delete</a>
<br>
<a id="ContentPlaceHolder3_gv_1To1CourseDetails_lnkstatusActive_0" href="javascript:__doPostBack('ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$lnkstatusActive','')">Active SMS</a>
<br>
<select name="ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlclasstype" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ContentPlaceHolder3$gv_1To1CourseDetails$ctl02$ddlclasstype\',\'\')', 0)" id="ContentPlaceHolder3_gv_1To1CourseDetails_ddlclasstype_0" style="border-color:#999999;border-width:1px;border-style:Solid;font-family:Verdana;font-size:11px;">
<option selected="selected" value="Auto">Auto</option>
<option value="Manual">Manual</option>
</select>
</td>
</tr>
最佳答案
回答这部分
is there a way to locate a parent of a certain element and then inthat parent you locate a button
假设这是 xpath:
//*[contains(text(),"blabla")]
您可以使用/..
或/parent::node-name
到达父节点。
让我们从例子中理解:-
//*[contains(text(),"blabla")]/..
应该找到 //*[contains(text(),"blabla")] 的父节点
如果你想有父过滤器,你可以等效地使用:-
//*[contains(text(),"blabla")]/parent::div[@id='some id']
在这种情况下,它将寻找具有 id
等于 some id
的父 div
(这只是一个示例)
关于python - 如何获取 Selenium 中元素的父元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68873400/
我需要您在以下方面提供帮助。近一个月来,我一直在阅读有关任务和异步的内容。 我想尝试在一个简单的 wep api 项目中实现我新获得的知识。我有以下方法,并且它们都按预期工作: public Htt
我的可执行 jar 中有一个模板文件 (.xls)。不需要在运行时我需要为这个文件创建 100 多个副本(稍后将唯一地附加)。用于获取 jar 文件中的资源 (template.xls)。我正在使用
我在查看网站的模型代码时对原型(prototype)有疑问。我知道这对 Javascript 中的继承很有用。 在这个例子中... define([], function () { "use
影响我性能的前三项操作是: 获取滚动条 获取偏移高度 Ext.getStyle 为了解释我的应用程序中发生了什么:我有一个网格,其中有一列在每个单元格中呈现网格。当我几乎对网格的内容做任何事情时,它运
我正在使用以下函数来获取 URL 参数。 function gup(name, url) { name = name.replace(/[\[]/, '\\\[').replace(/[\]]/,
我最近一直在使用 sysctl 来做很多事情,现在我使用 HW_MACHINE_ARCH 变量。我正在使用以下代码。请注意,当我尝试获取其他变量 HW_MACHINE 时,此代码可以完美运行。我还认为
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 关闭 9 年前。 要求提供代码的问题必须表现出对所解决问题的最低限度的理解。包括尝试过的解决方案、为什么
由于使用 main-bower-files 作为使用 Gulp 的编译任务的一部分,我无法使用 node_modules 中的 webpack 来require 模块code> dir 因为我会弄乱当
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 5 年前。 Improve this qu
我使用 Gridlayout 在一行中放置 4 个元素。首先,我有一个 JPanel,一切正常。对于行数变大并且我必须能够向下滚动的情况,我对其进行了一些更改。现在我的 JPanel 上添加了一个 J
由于以下原因,我想将 VolumeId 的值保存在变量中: #!/usr/bin/env python import boto3 import json import argparse import
我正在将 MSAL 版本 1.x 更新为 MSAL-browser 的 Angular 。所以我正在尝试从版本 1.x 迁移到 2.X.I 能够成功替换代码并且工作正常。但是我遇到了 acquireT
我知道有很多关于此的问题,例如 Getting daily averages with pandas和 How get monthly mean in pandas using groupby但我遇到
This is the query string that I am receiving in URL. Output url: /demo/analysis/test?startDate=Sat+
我正在尝试使用 javascript 中的以下代码访问 Geoserver 层 var gkvrtWmsSource =new ol.source.ImageWMS({ u
API 需要一个包含授权代码的 header 。这就是我到目前为止所拥有的: var fullUrl = 'https://api.ecobee.com/1/thermostat?json=\{"s
如何获取文件中的最后一个字符,如果是某个字符,则删除它而不将整个文件加载到内存中? 这就是我目前所拥有的。 using (var fileStream = new FileStream("file.t
我是这个社区的新手,想出了我的第一个问题。 我正在使用 JSP,我成功地创建了 JSP-Sites,它正在使用jsp:setParameter 和 jsp:getParameter 具有单个字符串。
在回答 StoreStore reordering happens when compiling C++ for x86 @Peter Cordes 写过 For Acquire/Release se
我有一个函数,我们将其命名为 X1,它返回变量 Y。该函数在操作 .on("focusout", X1) 中使用。如何获取变量Y?执行.on后X1的结果? 最佳答案 您可以更改 Y 的范围以使其位于函
我是一名优秀的程序员,十分优秀!