- 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/
我需要将文本放在 中在一个 Div 中,在另一个 Div 中,在另一个 Div 中。所以这是它的样子: #document Change PIN
奇怪的事情发生了。 我有一个基本的 html 代码。 html,头部, body 。(因为我收到了一些反对票,这里是完整的代码) 这是我的CSS: html { backgroun
我正在尝试将 Assets 中的一组图像加载到 UICollectionview 中存在的 ImageView 中,但每当我运行应用程序时它都会显示错误。而且也没有显示图像。 我在ViewDidLoa
我需要根据带参数的 perl 脚本的输出更改一些环境变量。在 tcsh 中,我可以使用别名命令来评估 perl 脚本的输出。 tcsh: alias setsdk 'eval `/localhome/
我使用 Windows 身份验证创建了一个新的 Blazor(服务器端)应用程序,并使用 IIS Express 运行它。它将显示一条消息“Hello Domain\User!”来自右上方的以下 Ra
这是我的方法 void login(Event event);我想知道 Kotlin 中应该如何 最佳答案 在 Kotlin 中通配符运算符是 * 。它指示编译器它是未知的,但一旦知道,就不会有其他类
看下面的代码 for story in book if story.title.length < 140 - var story
我正在尝试用 C 语言学习字符串处理。我写了一个程序,它存储了一些音乐轨道,并帮助用户检查他/她想到的歌曲是否存在于存储的轨道中。这是通过要求用户输入一串字符来完成的。然后程序使用 strstr()
我正在学习 sscanf 并遇到如下格式字符串: sscanf("%[^:]:%[^*=]%*[*=]%n",a,b,&c); 我理解 %[^:] 部分意味着扫描直到遇到 ':' 并将其分配给 a。:
def char_check(x,y): if (str(x) in y or x.find(y) > -1) or (str(y) in x or y.find(x) > -1):
我有一种情况,我想将文本文件中的现有行包含到一个新 block 中。 line 1 line 2 line in block line 3 line 4 应该变成 line 1 line 2 line
我有一个新项目,我正在尝试设置 Django 调试工具栏。首先,我尝试了快速设置,它只涉及将 'debug_toolbar' 添加到我的已安装应用程序列表中。有了这个,当我转到我的根 URL 时,调试
在 Matlab 中,如果我有一个函数 f,例如签名是 f(a,b,c),我可以创建一个只有一个变量 b 的函数,它将使用固定的 a=a1 和 c=c1 调用 f: g = @(b) f(a1, b,
我不明白为什么 ForEach 中的元素之间有多余的垂直间距在 VStack 里面在 ScrollView 里面使用 GeometryReader 时渲染自定义水平分隔线。 Scrol
我想知道,是否有关于何时使用 session 和 cookie 的指南或最佳实践? 什么应该和什么不应该存储在其中?谢谢! 最佳答案 这些文档很好地了解了 session cookie 的安全问题以及
我在 scipy/numpy 中有一个 Nx3 矩阵,我想用它制作一个 3 维条形图,其中 X 轴和 Y 轴由矩阵的第一列和第二列的值、高度确定每个条形的 是矩阵中的第三列,条形的数量由 N 确定。
假设我用两种不同的方式初始化信号量 sem_init(&randomsem,0,1) sem_init(&randomsem,0,0) 现在, sem_wait(&randomsem) 在这两种情况下
我怀疑该值如何存储在“WORD”中,因为 PStr 包含实际输出。? 既然Pstr中存储的是小写到大写的字母,那么在printf中如何将其给出为“WORD”。有人可以吗?解释一下? #include
我有一个 3x3 数组: var my_array = [[0,1,2], [3,4,5], [6,7,8]]; 并想获得它的第一个 2
我意识到您可以使用如下方式轻松检查焦点: var hasFocus = true; $(window).blur(function(){ hasFocus = false; }); $(win
我是一名优秀的程序员,十分优秀!