Selenium 使用css选择器python选择元素

Selenium 使用css选择器python选择元素,selenium,selenium-grid,Selenium,Selenium Grid,我正在尝试使用python在selenium中选择一个元素,需要css选择器的帮助。以下是HTML代码: <div class="grid x5" id="grid"> <div style="opacity: 1;"><span class="box" style="z-index:92"></span>8</div><div style="opacity: 1;"><span class="box"

我正在尝试使用python在selenium中选择一个元素,需要css选择器的帮助。以下是HTML代码:

<div class="grid x5" id="grid">
        <div style="opacity: 1;"><span class="box" style="z-index:92"></span>8</div><div style="opacity: 1;"><span class="box" style="z-index:77"></span>23</div><div style="opacity: 1;"><span class="box" style="z-index:93"></span>7</div><div style="opacity: 1;"><span class="box" style="z-index:99"></span>1</div><div style="opacity: 1;"><span class="box" style="z-index:80"></span>20</div><div style="opacity: 1;"><span class="box" style="z-index:76"></span>24</div><div style="opacity: 1;"><span class="box" style="z-index:83"></span>17</div><div style="opacity: 1;"><span class="box" style="z-index:94"></span>6</div><div style="opacity: 1;"><span class="box" style="z-index:87"></span>13</div><div style="opacity: 1;"><span class="box" style="z-index:95"></span>5</div>
        <div style="opacity: 1;"><span class="box" style="z-index:78"></span>22</div><div style="opacity: 1;"><span class="box" style="z-index:98"></span>2</div><div style="opacity: 1;"><span class="box" style="z-index:82"></span>18</div><div style="opacity: 1;"><span class="box" style="z-index:79"></span>21</div><div style="opacity: 1;"><span class="box" style="z-index:89"></span>11</div><div style="opacity: 1;"><span class="box" style="z-index:91"></span>9</div><div style="opacity: 1;"><span class="box" style="z-index:85"></span>15</div><div style="opacity: 1;"><span class="box" style="z-index:90"></span>10</div><div style="opacity: 1;"><span class="box" style="z-index:81"></span>19</div><div style="opacity: 1;"><span class="box" style="z-index:96"></span>4</div>
        <div style="opacity: 1;"><span class="box" style="z-index:97"></span>3</div><div style="opacity: 1;"><span class="box" style="z-index:75"></span>25</div><div style="opacity: 1;"><span class="box" style="z-index:88"></span>12</div><div style="opacity: 1;"><span class="box" style="z-index:84"></span>16</div><div style="opacity: 1;"><span class="box" style="z-index:86"></span>14</div>
    </div>

823712024176135
22218211191510194
325121614
我可以看到,在style=“z-index:92”-->100-z-index是正在显示的数字。不知道这有什么帮助

如果我尝试使用selenium并使用上面的代码单击数字1-25,我将如何使用上面的HTML代码呢


谢谢你的帮助

文本1-25包含在div标记中,您可以尝试:

#xpath
element_list = driver.find_elements_by_xpath("//div[contains(@style,'opacity')]")# to find all div elements with style= "opacity: 1;"

#css selector
#element_list = driver.find_elements_by_css_selector("[style^=opacity]") # to match divs containing style attribute starting with opacity

for items in element_list:
    print (items.text)  #to print out element text
    if (items.text) in range(1, 25):
    # do your click action here

您可以使用id=“grid”选择div中的所有div。您可以使用driver.find_element_by_css_选择器(“#grid>div”)。现在,您可以迭代这些元素,使用webelement上的get_属性(“innerText”)检查它们的innerText属性,并在检索到的innerText属性值为1-25时单击它们。@Nish26我一直跟踪到css_选择器,不确定如何迭代这些元素:el1=webdriver。通过css_选择器(“网格>div”)查找元素。get_属性(“innerText”)仅获取第一个元素?您介意展开吗?您尝试单击哪个1-25数字?“z-index:95””“或者8@theGuy8.我添加了一张它的外观图片。zzzscore.com hhh!这太完美了!如果我必须按顺序单击数字,即单击1、单击2、单击3…,会有任何更改吗?@vay,这有点棘手,因为这些元素可以存储在列表中的随机位置。您必须首先找到元素的位置,或者按顺序对列表项进行排序。