【问题标题】:Selenium python how to get this text under buttonSelenium python如何在按钮下获取此文本
【发布时间】:2021-05-18 16:16:12
【问题描述】:

大家好,我正在学习硒。我得到了下面的html,里面有一个文本

<button data-v-0a74e43e="" class="button-primary button-primary--dark pl-2 pr-4"><div data-v-0a74e43e="" class="avatar rounded-full overflow-hidden mr-2 -mt-02"><img data-v-0a74e43e="" src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/97/107e_full.jpg%22%3E</div><span data-v-0a74e43e="" class="text-sm font-bold -mt-02"> Black_catXIII </span><!----></button>

如何使用 selenium 和 python 获取此文本“Black_catXIII”?非常感谢你

EDIT1:这是完整的 html,我可以通过 driver.find_elements_by_xpath('//*[@id="app"]/div1/div[2]/div1/div/ div[3]/div[2]') 并通过调试器它有一个文本,但由于它是 elements 所以我不知道如何检索

<div data-v-0a74e43e="" data-v-2347e6ae="" class="flex"><div data-v-0a74e43e="" class="flex items-center mr-4"><a data-v-0a74e43e="" href="/withdraw" class="link text-sm font-bold"> Withdraw </a></div><div data-v-0a74e43e="" class="flex items-center mr-2"><a data-v-0a74e43e="" href="/deposit" class="button-primary button-primary--gold px-4 xxl:px-6"> Deposit </a></div><div data-v-0a74e43e="" class="flex items-center mr-2"><div data-v-4db070a8="" data-v-0a74e43e="" class="relative"><div data-v-4db070a8="" class="balance"><div data-v-4db070a8="" class="relative mr-2"><div data-v-4db070a8="" id="total-balance" class="w-18 h-18 fill-current"><svg data-v-4db070a8="" viewBox="0 0 22 22" class=""><path data-v-4db070a8="" d="M21.72 4a.86.86 0 000-.17c0-1.7-4.44-3.09-9.93-3.09S1.9 2.14 1.9 3.84a1.46 1.46 0 000 .22.86.86 0 01-.04-.06v2.55c0 .55.61 1.15 1.68 1.7 0 0 2.63 1.58 8.26 1.64a21.28 21.28 0 007-1.09c1.82-.64 2.91-1.46 2.91-2.19V4.05a.28.28 0 000-.09.08.08 0 01.01.04zM4.37 3.31c.73-1 3.78-1.71 7.43-1.71s6.78.75 7.46 1.74a.72.72 0 01.14.41v.41a2.55 2.55 0 00-.4-.32c-1.07-.76-3.9-1.2-7.18-1.2s-6 .4-7.1 1.14a1.73 1.73 0 00-.49.38v-.41a.77.77 0 01.14-.44zm15.52 6.46v2.55c0 .73-1.08 1.55-2.91 2.2a21 21 0 01-7 1.08c-5.67-.06-8.3-1.6-8.3-1.6C.61 13.42 0 12.82 0 12.27v-2.5a.28.28 0 010-.09.76.76 0 010-.16C0 9 .57 8.38 1.55 7.9V8c0 .58.67 1.21 1.85 1.78 0 0 2.58 1.38 8.1 1.55a19.56 19.56 0 007-1.08 10.48 10.48 0 001.32-.56 1 1 0 01-.08.28 1.59 1.59 0 00.12-.27zM22 15.41v2.5c0 .55-.61 1.15-1.68 1.7 0 0-2.63 1.57-8.27 1.63a21 21 0 01-7-1.08C3.19 19.52 2.11 18.7 2.11 18v-2.68a1.89 1.89 0 00.09.21 10.35 10.35 0 001.23.52 19.78 19.78 0 007 1.08c5.52-.18 8.1-1.55 8.1-1.55 1.17-.57 1.85-1.2 1.85-1.78v-.08c1 .48 1.54 1 1.54 1.65v-.06a.28.28 0 01.08.1z"></path></svg></div></div><span data-v-4db070a8="" class="font-bold xl:text-sm"><span data-v-4db070a8="" class="whitespace-no-wrap font-numeric">1.15</span></span><!----></div></div></div><div data-v-0a74e43e="" class="flex items-center mr-2"><button data-v-0a74e43e="" class="button-primary button-primary--dark pl-2 pr-4"><div data-v-0a74e43e="" class="avatar rounded-full overflow-hidden mr-2 -mt-02"><img data-v-0a74e43e="" src="https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/97/9758645300ccdf9d7c2cf31ac75c9ec2086e107e_full.jpg"></div><span data-v-0a74e43e="" class="text-sm font-bold -mt-02"> Black_catXIII </span><!----></button></div></div>

【问题讨论】:

  • 我不确定您在此处提供的元素是否具有唯一的定位器。你能分享一个指向那个网页的链接吗?

标签: python-3.x selenium


【解决方案1】:

试试这个

driver.find_element_by_xpath(".//button[contains(@class,'button-primary')]/span").text

【讨论】:

  • 它工作正常。非常感谢:D。你能解释一下上面的命令吗?你怎么会知道。非常感谢:D
  • 谢谢你:)。总是写一个相对的 xpath。所以在这里,我正在寻找一个包含类名'button-primary'的按钮。获取以下跨度 bcoz 这就是您的文本所在的位置。并使用 webelement 上的 text 方法获取实际文本
  • 我编辑了我的第一篇文章,我的第一个方法是尝试获取父亲路径。正如您通过屏幕截图看到的那样,它有一个文本,但我无法在结果中找到它。你有什么主意吗?如果你有不和谐或任何信使你能加我吗:D
  • 您指的是哪个文本?
  • 和以前一样。图中是 Black_catXIII。由于它的元素,所以我不知道如何在结果中找到它并导出它。我尝试了文本功能,但它抛出了一个错误
【解决方案2】:

我希望这不是您的完整 HTML,但从我们可以看到文本位于唯一的 span 元素中。这意味着您可以在 python 中使用以下行打印文本:

print(driver.find_element_by_css_selector('span').get_attribute('innerHTML'))

如果这不起作用,您需要提供完整的 HTML 来识别唯一的选择器。

【讨论】:

  • 它不起作用:D 顺便说一句,我添加了有关此按钮的完整 html。
  • 这是错误“'WebDriver' 对象没有属性 'get_element_by_css_selector'”,带有完整命令“steam_id = driver.get_element_by_css_selector('span').get_attribute('innerHTML')”。顺便说一句,我编辑了我的第一篇文章,你能看看吗?非常感谢
  • 哦,对不起,是find_element...,不是get_element...,我把语法弄乱了。我更新的答案应该有效。
  • 没问题。我尝试了您的更改代码,它也可以正常工作:D 非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-28
  • 2022-01-05
  • 2012-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多