Splinter Python脚本按钮点击
问题描述:
我想写一个代码,让我选择我选择的性别(让我们用女性作为例子)。元素如下。请注意,ID保持更改,所以我不能使用具有ID的css选择器。Splinter Python脚本按钮点击
请告知在硒中使用哪种方法。
谢谢!
<div id="557f72b0-c612-428a-a77e-eb0841869ddb" class="nike-unite-gender-buttons gender nike-unite-component">
<div class="shim"></div>
<div class="error"></div>
<input type="hidden" id="40d664f0-e498-4fa2-8a6f-7d9fc75cfe01" value="" name="gender" data-componentname="gender">
<ul data-componentname="gender">
<li id="222f5bc2-171e-450e-8182-8e15c8d9f47b" class="">
<input type="button">
<span>Male</span>
</li>
<li id="6c6098bb-fc9f-497e-8551-0ae6bb8a235c" class="">
<input type="button">
<span>Female</span>
<</li>
</ul>
<div class="tip">Please select a gender.</div>
</div>
答
首先,通过类名查找性别容器:
gender_container = browser.find_by_css('.nike-unite-gender-buttons.gender').first
然后,通过下面的文字找到span
元素内的按钮:
female = gender_container.find_by_xpath('.//li[span = "Female"]/input').first
female.click()
或者,您可以尝试直接通过文本找到元素:
browser.find_by_text('Female').first.click()
+0
非常感谢。它的工作原理,我尝试了一切,但find_by_text方法。大声笑.. – xBillBillx
+1
@xBillBillx,你可能[接受这个答案](http://*.com/help/accepted-answer)如果它解决了你的问题 – Andersson
您是否尝试过使用'XPath'选择器,例如'// span [text ='Female']'?显示你的尝试和异常日志 – Andersson
@Andersson你的意思是'文本()'? :)顺便说一下,在'splinter'中有方便的'find_by_text()'快捷方式。 – alecxe
哦..是的,我的意思是'// span [text()='女']'。谢谢 – Andersson