当前位置: 首页 > 知识库问答 >
问题:

如何在不考虑div索引的情况下识别XPath?

况鸿雪
2023-03-14

我正在编写一个从站点中抓取信息的python代码,但我必须首先去掉一些cookies弹出窗口。要单击右侧按钮,我需要它们的XPath(据我所知)。问题是XPath的一部分每次都发生变化,我不知道如何找到它们,因为它们实际上没有任何属性,比如ID之类的。

这是按钮的HTML:

<button class="Button__StyledButton-a1qza5-0 lcqSKB" style="visibility: visible; background-color: rgb(12, 44, 91);">Lees meer om voorkeuren te accepteren</button>

这是我现在使用的命令:

driver.find_element_by_xpath('/html/body/div[14]/div[1]/div[3]/button').click()

这是XPath:

/html/body/div[VARIABLE]/div[1]/div[3]/button

变量每次都变,所以我改变了14。

共有1个答案

应嘉容
2023-03-14

如果您像现在这样使用完整的xPath,就会一直遇到类似的问题。更好的方法是找出另一种/更短的方法来获得该元素。

没有URL很难进行测试,但可以尝试以下方法之一:

driver.find_element_by_css_selector("Button__StyledButton-a1qza5-0.lcqSKB")
driver.find_element_by_css_selector("Button__StyledButton-a1qza5-0")
 类似资料:
  • 问题内容: 我在表格中有两列:和。我想以不允许插入两行的方式使对(,)唯一: 问题答案: 在这种情况下,您可以在表达式上创建索引: 注意:如果各列允许值,则有些奇怪。在那种情况下,无论位于哪个列中,相同的值都只能被允许一次。如果这实际上是一个问题,则可以使用更复杂的表达式来解决。

  • 我有一个contenteditable div,用户可以在其中输入文本。我希望文本自动换行,但不像默认的空格或连字符,而是像这样: 我如何才能实现这一点?

  • 问题内容: 我发现进行辅助查询来检查更多结果以显示 更多加载 按钮是非常不专业的。 我正在使用PDO,有什么方法可以在没有限制过滤器的情况下获得找到的总行数,但仍在过滤结果? 当前代码: 问题答案: 仅MySQL AFAIK: 当然,对于数据库服务器而言,查询一次就像查询所有记录一样繁重。对于非MySQL使用,此查询当然比获取 所有 记录的行数更好:

  • 问题内容: 我正在尝试使用Mockito测试一些旧代码。 我想存根用于生产的a如下: 我可以写: 但是明显的问题是,从来没有使用与我存根方法相同的对象来调用它。(请该运算符!) 如果我可以以不考虑参数的方式返回该方法的方法来对它进行存根,我将非常喜欢。失败的话,我会听取其他解决方法的建议,但我真的想避免更改生产代码,直到有合理的测试范围为止。 问题答案: 或(避免s): 不要忘记导入匹配器(有许多

  • 我越来越多地尝试设计和构建我的应用程序,使它们与框架无关。这意味着使用JSR注释而不是Spring注释、JPA2接口等。但是我发现自己有时有很多困难。 例如,目前,我需要检索特定类的所有bean的列表。使用特定于Spring的方法,我可以使用ApplicationContext来,但我试图在不使用Spring应用程序上下文的情况下实现这一点。 是否有与Spring应用程序上下文等效的JSR? Ex