XPath local-name() SyntaxError:表达式不是合法表达式



我正试图从iframe中抓取一个表。为了将驱动程序切换到该帧,我使用driver.find_element_by_xpath,但问题是html代码中的路径包括一些名称空间,我无法让Python使用local-name()函数来计算。

这是我使用的HTML块:

<xbrl:campo-captura xbrl:solo-lectura="true" xbrl:id-hecho-plantilla="ar_pros_CorporateStructure_11933a35-3932-44c0-b394-f0ebd4f722d2" 
id="8a97271e-df5c-4fbe-bedf-513ea1508bf2"><div>
<div>

<i style="cursor:pointer; float:right;margin-right:-20px;" id="d9fa20ae-c55f-4344-baf5-0112a13827b6" class="i i-arrow-down-2 botonDetalleOperacionXbrl">
</i>

<div id="abrir_nota_F2a26d5a7-2934-4ff0-86df-7a8983c05e47" style="cursor:pointer;float:right;margin-right:-20px;margin-top:20px;" data-toggle="tooltip" data-placement="right" title="Abrir nota">
<i class="fa fa-external-link"></i>
</div>
</div>
<div class="campoTextBlock">
<div id="F2a26d5a7-2934-4ff0-86df-7a8983c05e47">
<div class="celdaAnchoFijo textBlockLimit div-default divTextBlockMaximo" id="divAreaTextod9fa20ae-c55f-4344-baf5-0112a13827b6" style="overflow-y:hidden">
<iframe scrolling="no" id="frame_8a97271e-df5c-4fbe-bedf-513ea1508bf2" style="width:100%;height:100%" frameborder="0"></iframe>
</div>
</div>
</div>

<div>

</div>
</div></xbrl:campo-captura>

我想进入"iframe"使用如下命令:

framLogin= driver.find_element_by_xpath('//[local-name()="campo-captura"][@*[local-name()="id-
hecho-plantilla" and .="ar_pros_CorporateStructure_11933a35-3932-44c0-b394-f0ebd4f722d2"]]
/div[2]/div/div/iframe')

我得到的信息是

给定的xpath表达式…SyntaxError: Document。evaluate:表达式不是合法表达式。

我已经寻找了更多的信息,但我所找到的不是Python。我知道我可以通过使用它的id来访问iframe,但后来我想做一个循环废弃相同的表在其他url与完全相同的格式,和iframe的id

您的即时语法错误可以通过更改

来修复
//[local-name()="campo-captura"]

//*[local-name()="campo-captura"]
^

相关内容

  • 没有找到相关文章

最新更新