【问题标题】:Xpath Selectors - is it possible to find elements by title in selenium?Xpath 选择器 - 是否可以在 selenium 中按标题查找元素?
【发布时间】:2023-03-31 21:11:01
【问题描述】:

我一直在尝试构建一个机器人,它可以抓取 Instagram 中喜欢图片的追随者的姓名。该网站会打开一个弹出框,其中包含帐户,并且该框似乎会在您滚动时刷新帐户链接。我编写了一个代码,可以打开该框然后滚动它,但我无法让 selenium 刮取帐户名称。我的代码看起来像这样滚动弹出框:

realscroll_box = browser.find_element_by_xpath('/html/body/div[4]/div/div[3]/div')
while last_ht != ht:
last_ht = ht
time.sleep(2)
ht = browser.execute_script('''
                            arguments[0].scrollTo(0, arguments[0].scrollHeight);
                            return arguments[0].scrollHeight;
                            ''', realscroll_box)
namelinkstemp1 = realscroll_box.find_elements_by_xpath('//*[contains(@href,"/")')

但它给了我这个错误:

selenium.common.exceptions.InvalidSelectorException:消息:无效选择器:由于以下错误,无法使用 xpath 表达式 //[starrts-with(@href,"/") 定位元素: SyntaxError: 无法对“文档”执行“评估”:字符串 '//[starrts-with(@href,"/")' 不是有效的 XPath 表达式。

我试图提取的文本如下所示:

<a title="instagramusername" href="/instagramusername/">
<div class="                   Igw0E     IwRSH      eGOV_     ybXk5    _4EzTm                                                                                                              ">
<div class="_7UhW9   xLCgt       qyrsm KV-D4            fDxYl      rWtOq">
<div class="                   Igw0E   rBNOH        eGOV_     ybXk5    _4EzTm                                                                                                              ">instagramusername</div>
</div>
</div>
</a>

感谢您的帮助,xpath 查询对我来说非常新。

谢谢:)

【问题讨论】:

  • 你的 xpath 真的是 starrts-with 吗?您拼错了函数名称。它的r 太多了。
  • 我希望不会!似乎我的代码从头到尾都充满了错误。好尴尬

标签: python html selenium xpath


【解决方案1】:

Starts-with 函数根据属性值查找元素。在你的代码功能不正确。还有//*[contains(@href,"/"),在这里你错过了] 正确一个://a[contains(@href, '/')]

  //*[starts-with(@href,'/')]

//a[starts-with(@href,'/instagramuse')]

【讨论】:

  • 太棒了,谢谢。错过括号是我的愚蠢错误。当您说 Starts-with 使用属性值查找时,您是什么意思?再次感谢您的帮助!
  • 所以它会从 DOM 中识别元素 whos 属性值(在您的情况下为 ::href)以 / 开头
猜你喜欢
  • 1970-01-01
  • 2021-11-21
  • 1970-01-01
  • 1970-01-01
  • 2021-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
相关资源
最近更新 更多