我有一个 lxml etree HTMLParser 对象,我试图用它来构建 xpaths 来断言 xpaths、xpath 的属性和该标签的文本。当标签文本有单引号 (') 或双引号 (") 时,我遇到了一个问题,我已经用尽了所有选项。
这是我创建的示例对象
parser = etree.HTMLParser()
tree = etree.parse(StringIO(<html><body><p align="center">Here is my 'test' "string"</p></body></html>), parser)
Run Code Online (Sandbox Code Playgroud)
这是代码片段,然后是正在读取的变量的不同变体
def getXpath(self)
xpath += 'starts-with(., \'' + self.text + '\') and '
xpath += ('count(@*)=' + str(attrsCount) if self.exactMatch else "1=1") + ']'
Run Code Online (Sandbox Code Playgroud)
self.text 基本上是标签的预期文本,在这种情况下:这是我的“测试”“字符串”
当我尝试使用 HTMLParser 对象的 xpath 方法时失败
tree.xpath(self.getXpath())
Run Code Online (Sandbox Code Playgroud)
原因是因为它得到的 xpath 是这个 '/html/body/p[starts-with(.,'Here is my 'test' "string"') and 1=1]'
如何从 self.text 变量中正确转义单引号和双引号?我试过三重引用,在 repr() 中包装 self.text,或者做一个 re.sub 或 string.replace 转义 ' and …
我正在尝试启动Firefox的远程webdriver实例并传入配置文件.
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList","2")
self.webdriver = webdriver.Remote(desired_capabilities=webdriver.DesiredCapabilities.FIREFOX,browser_profile=profile)
Run Code Online (Sandbox Code Playgroud)
这不起作用.如果我将它传递到Firefox webdriver实例,它可以正常工作
profile = webdriver.FirefoxProfile()
profile.set_preference("browser.download.folderList","2")
self.webdriver = webdriver.Firefox(firefox_profile=profile)
Run Code Online (Sandbox Code Playgroud)
有bug吗?我正在使用Firefox 9和Selenium 2.16
在我的背景下,我无法将头包裹在Bamboo周围.我有功能测试,它们与正在构建的实际产品分开存放.我们正在尝试使用Bamboo来签出和构建代码,运行单元/集成测试以及所有传递是否都运行功能测试.这里的要求是功能测试在远程客户端上运行,该客户端与检出/构建代码并运行所有单元/集成测试的服务器通信.我安装了此服务器的远程代理,以通过在远程代理中设置命令功能来运行功能测试.问题是我需要从不同的工作目录开始调用我的测试.一旦调用了测试,我需要Bamboo来消耗这些结果.