Splinter Python脚本按钮点击

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>  
+0

您是否尝试过使用'XPath'选择器,例如'// span [text ='Female']'?显示你的尝试和异常日志 – Andersson

+1

@Andersson你的意思是'文本()'? :)顺便说一下,在'splinter'中有方便的'find_by_text()'快捷方式。 – alecxe

+1

哦..是的,我的意思是'// span [text()='女']'。谢谢 – Andersson

首先,通过类名查找性别容器:

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