无法对“文档”执行“ querySelector”:“ #traveller [36350015] [date_of_birth(3i)]”不是有效的选择器

时间:2018-07-15 11:35:34

标签: javascript css-selectors puppeteer

我正在使用操纵up并面临错误

  

无法在“文档”上执行“ querySelector”:“#traveller [36350015] [date_of_birth(3i)]”不是有效的选择器

从下拉菜单中选择年龄时。 HTML代码在这里

<select id="traveller[36350015][date_of_birth(3i)]" name="traveller[36350015][date_of_birth(3i)]"><option value="0" selected="selected">...</option>
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
    <option value="4">4</option>
    <option value="5">5</option>
    <option value="6">6</option>
    <option value="7">7</option>
    <option value="8">8</option>
    <option value="9">9</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
</select>`

我曾尝试跟踪但每次都出现相同的错误

await page.select("#traveller[36350015][date_of_birth(3i)]", `${day}`);

await page.evaluate((day) => {
    {

        document.querySelector('#traveller*> option:nth-child(1)').selected = true;
    }
}, day);

我想id出了问题。

2 个答案:

答案 0 :(得分:1)

方括号,括号和数字都需要用反斜杠转义,以免被视为特殊字符。

由于您的ID中有很多个字符,因此,将它们全部转义是多余的,这会导致选择器看上去很凌乱,因此我建议改用属性选择器:

await page.select("[id='traveller[36350015][date_of_birth(3i)]']", `${day}`);

答案 1 :(得分:0)

您没有在选择器中正确转义括号。试试这个:

"#traveller\[36350015\]\[date_of_birth\(3i\)\]"