我正在尝试找到一个字符串。但这似乎不起作用。
HTML:
<form name="form1" method="post" action="?cz=del&wbid=7683290543&zjt=aaa&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="aaa.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>
<form name="form1" method="post" action="?cz=del&wbid=2324242122&zjt=bbb&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>
<form name="form1" method="post" action="?cz=del&wbid=2324242553&zjt=ccc&lx=CNAME&xl=%C4%AC%C8%CF&fs=" onSubmit="return b_ifsf('delete?');" id="form1">
<td style="width:120px">
<input type="hidden" name="ip" value="ccc.xxx.com.a.bdydns.com." >
<input type="submit" name="rpt$btnDelete" value="delete" />
</td>
</form>
如何找出关键字 bbb.xxx.com.a.bdydns.com ,然后点击“提交”以将其删除?
答案 0 :(得分:1)
@EVNRaja的解决方案方向正确。
要找到文本 bbb.xxx.com.a.bdydns.com ,然后单击具有 value 属性作为 delete 的关联元素您可以使用以下任一解决方案:
使用 xpath 和click()
:
driver.find_element_by_xpath("//form[@id='form1' and @name='form1']//input[@name='ip' and @value='bbb.xxx.com.a.bdydns.com.']//following::input[1]").click()
使用 xpath 和submit()
:
driver.find_element_by_xpath("//form[@id='form1' and @name='form1']//input[@name='ip' and @value='bbb.xxx.com.a.bdydns.com.']//following::input[1]").submit()
答案 1 :(得分:0)
您要标识的URL被引用为隐藏元素。
您提供的html代码:
<input type="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com." >
浏览器中所有隐藏的元素可能都有目的。 示例:
请考虑有文本字段,并且没有数字值作为输入,如果最终用户输入任何数字值,则在文本字段旁边将显示错误代码。 在这里,除非我们输入数字文本,否则错误消息(html标记元素内的文本)将被隐藏。
在您共享的html代码中,您要检查的值在输入标签中被引用并且具有type="hidden" name="ip" value="bbb.xxx.com.a.bdydns.com."
,我们可以编写如下的复合xpath:
具有多个复合语句的示例:
//input[@type = 'hidden' and @name = 'ip' and contains(@value, 'bbb.xxx.com.a.bdydns.com.')]/following-sibling::input
或
一个简单的例子:
//input[contains(@value, 'bbb.xxx.com.a.bdydns.com.')]/following-sibling::input
使用此xpath代码,我们可以直接识别提交,然后在下一步中单击按钮。
答案 2 :(得分:0)
You should be able to use a css selector combination of:
[value='bbb.xxx.com.a.bdydns.com.'] + input
Code:
driver.find_element_by_css_selector("[value='bbb.xxx.com.a.bdydns.com.'] + input").click() #.submit()
The first part is an attribute = value css selector then the "+" is an adjacent sibling combinator, followed by an element selector; saying, find input
tag element that is an adjacent sibling element to element with attribute value
having value of bbb.xxx.com.a.bdydns.com.