Xpath选择器是否可以在selenium中按标题查找元素?

2024-09-30 10:33:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在尝试构建一个机器人,它可以刮去喜欢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,“/”)的元素: 语法错误:未能对“文档”执行“评估”:字符串“/[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查询对我来说非常陌生

谢谢:)


Tags: 代码divbrowserboxbyselenium帐户find
1条回答
网友
1楼 · 发布于 2024-09-30 10:33:15

以开始函数根据属性值查找元素。代码中的函数不正确。还有//*[contains(@href,"/"),这里您错过了] 正确的一个://a[contains(@href, '/')]

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

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

相关问题 更多 >

    热门问题