我尝试使用selenium在无序列表中找到一个复选框:
ul=browser.find_element_by_xpath('//[@id="TestTake"]/div[2]/div/div/ol/li[{}]/div[2]/ul'.format(num))
checkbox_id=ul.find_element_by_xpath("//[contains(text(),'{}')]".format(correct.replace("'","\'"))).get_attribute("for")
问题:
"//[contains(text(),'{}')]".format(correct.replace("'","\'"))).get_attribute("for"
当correct
等于L'
或包含引号的内容时,会发生。
如何正确逃避单引号?我不确定是否有正确的引用,所以我需要能够处理这两种情况,双引号。
此外,这是唯一的方法,因为我只能通过使用其内容找到的属性for
来获取id。
答案 0 :(得分:0)
结果证明字符串连接起了作用:
checkbox_id = ul.find_element_by_xpath("//*[contains(text(),\"" + correct + "\")]").get_attribute("for")