【问题标题】:Can't find twitter DM textbox by xpath using selenium使用硒的xpath找不到twitter DM文本框
【发布时间】:2020-08-31 00:39:12
【问题描述】:

我正在尝试使用 find_element_by_xpath() 方法查找文本框元素,但它一直告诉我找不到所述元素,这是执行此操作的代码行。

我尝试通过链接文本、部分链接文本、选择器找到它,但它不起作用

bar = nav.find_element_by_xpath('//*[@id="react-root"]/div/div/div[2]/main/div/div/div/div[2]/div/div/aside/div[2]/div[2]/div/div/div/div/div[1]/div/div/div/div[2]/div/div/div/div')

提前致谢!

【问题讨论】:

  • 这个选择器似乎很脆弱,从开发者工具中复制XPath 并不是一个好价钱。您要查找哪个文本框?
  • @Lughzin 使用相关的 HTML 更新问题。
  • @MarsilinouZaky 当您在 Twitter 上打开与某人的 DM 时,我正在尝试获取写有“开始新消息”的文本框

标签: python css selenium xpath


【解决方案1】:

所以,如果您想要精确并避免基于 html 结构(可能会更改)采用它,我建议创建您的 xpath。

定位器如下所示:

你可以用 xpath 来处理它:

//input[@placeholder='Search people' and @role='combobox']

为避免此问题,我建议阅读教程以更好地了解如何创建自定义定位器:Xpath tutorial

【讨论】:

    【解决方案2】:

    发生的事情是:当我打开选项卡检查元素时,DM 结构因我的屏幕尺寸而改变,因此 xpath 不一样

    【讨论】:

    • 不是因为屏幕大小,而是因为应用程序的机制旨在使前端代码动态化。
    • @Razvan 是的,这正是发生的事情,很抱歉无法正确表达,我对前端还不是很有经验
    猜你喜欢
    • 1970-01-01
    • 2011-03-08
    • 1970-01-01
    • 2021-04-03
    • 2013-05-21
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 2015-08-03
    相关资源
    最近更新 更多