Selenium InvalidSelectorException由单引号(python)引起

时间:2018-11-15 16:00:08

标签: html python-3.x quotes

我无法使用Selenium Webdriver选择元素。 我正在尝试获取“学生用书”,然后单击属于它的“开始”按钮。有几本书的标题相似,因此特别要准确地获得这本书很重要。使用id查找元素不起作用,因为它们正在生成并且并不总是相同。

html如下所示:

<table style="margin: 0; width: 100%;">
    <tbody>
        <tr>
            <td><img src="/image/db/prod/pic.jpg" alt=""></td>
            <td style="padding: 0; vertical-align: top; position: relative;">
                <h3 class="top0" style="width: 200px;" id="crp_title_254">Student's Book</h3>
                <hr><a class="linkButton orangeLinkButton bold" href="some_link">Start</a>
                <a class="btn_crpdel" id="btn_crpdel_254"><img class="style-del" src="/styles/pic/style-del.png" alt="-" style="width: 23px; height: 23px;"></a>
            </td>
        </tr>
    </tbody>
</table>

python部分看起来像这样,其材质变量的值为“学生用书”:

try:
    #material = "Student's Book"
    start_link = self.browser.find_element(By.XPATH, "//h3[text()='" + material + "']/following::a[contains(text(), launch_button[self.INTERFACE_LANGUAGE])]")
    start_link.click()
except Exception as e:
    Exceptionhandling...

运行上述代码时,会发生以下异常:

InvalidSelectorException('Given xpath expression "//h3[text()=\'Student Book\'s\']/following::a[contains(text(), launch_button[self.INTERFACE_LANGUAGE])]" is invalid: SyntaxError: The expression is not a legal expression.', None, None)

如果其中没有单引号,那么整个工作就很好了。 有人知道我在做什么错吗?

提前谢谢!

0 个答案:

没有答案