首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何循环浏览并单击相关项目

如何循环浏览并单击相关项目
EN

Stack Overflow用户
提问于 2016-02-09 22:43:43
回答 1查看 94关注 0票数 1

下面我有四个单选按钮,每个按钮选择一个乘客。

代码语言:javascript
复制
<input checked="checked" name="passenger" id="passenger-0" data-passengerindex="0" type="radio">
    <input checked="checked" name="passenger" id="passenger-1" data-passengerindex="1" type="radio">
    <input checked="checked" name="passenger" id="passenger-2" data-passengerindex="2" type="radio">
    <input checked="checked" name="passenger" id="passenger-3" data-passengerindex="3" type="radio">

下面是一个代码块,显示了一排座位(在第6行),一些婴儿座位(class="seat infant")和其他普通座位(普通座位是非婴儿座椅- class="seat noinfant"和座椅class="seat"

代码语言:javascript
复制
    <td>
        <a href="#6A" title="Seat Suitable for Infants 6A" data-seat="6A" data-seatid="81374518" data-seatgroup="0" class="seat  infant" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6A</span>
        </a>
    </td><td>
        <a href="#6B" title="Seat Suitable for Infants 6B" data-seat="6B" data-seatid="81374519" data-seatgroup="0" class="seat  infant" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6B</span>
        </a>
    </td>
    <td>
        <a href="#6C" title="Seat Suitable for Infants 6C" data-seat="6C" data-seatid="81374520" data-seatgroup="0" class="seat  infant" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6C</span>
        </a>
    </td>
        <td class="aisle">6</td>
    <td>
        <a href="#6D" title="Seat Suitable for Infants 6D" data-seat="6D" data-seatid="81374522" data-seatgroup="1" class="seat  noinfant" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6D</span>
        </a>
    </td>
    <td>
        <a href="#6E" title="Seat Suitable for Infants 6E" data-seat="6E" data-seatid="81374523" data-seatgroup="1" class="seat" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6E</span>
        </a>
    </td>
    <td>
        <a href="#6F" title="Seat Suitable for Infants 6F" data-seat="6F" data-seatid="81374524" data-seatgroup="1" class="seat  infant" data-personid="" data-infantseat="True">
            <span>Seat Suitable for Infants 6F</span>
        </a>
    </td>
</tr>

当选择一个座位时,会发生以下情况:

  • 婴儿座位从class="seat infant"class="seat infant reserved selected的类更改
  • 普通座位- class="seat noinfant"class="seat noinfant reserved selectedclass="seat"class="seat reserved selected

下面是我需要帮助实现的内容:

从第一排开始,继续前进

  • 对于前两名乘客,单击下一个可用的婴儿座椅(每个婴儿座位一名乘客)
  • 对于最后两位乘客,请单击从第1排开始的任何座位。

我们不需要实际选择乘客,因为他们被自动选择后,选择一个座位,第一个乘客已经选择时,页面被加载。

像我这样只使用Python 4天的人,有没有人知道如何实现上面的内容?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-10 14:48:32

这样做的目的是:

  • 根据乘客是否有婴儿( data-hasinfant属性),决定选择哪个座位
  • 使用CSS类选择器与not()一起到达非选定和非预定座位。

抽样实施情况:

代码语言:javascript
复制
for passenger in driver.find_elements_by_css_selector("ol.passengerlist li[data-personid]"):
    passenger.click()

    has_infant = passenger.get_attribute("data-hasinfant")

    # choose seats
    if has_infant:
        # select a non-selected infant seat
        seat = driver.find_element_by_css_selector(".planebody a.seat.infant:not(.reserved):not(.selected)")
    else:
        # select a non-reserved non-selected seat
        seat = driver.find_element_by_css_selector(".planebody a.seat:not(.reserved):not(.selected)")

    print("Passenger: %s, choosing seat: %s" % (passenger.text.strip(), seat.get_attribute("data-seat")))
    seat.click()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35303663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档