【问题标题】:Find xpath in html element using a part of href only katalon recorder, kantu, selenium ide, ui vision使用 href only katalon recorder、kantu、selenium ide、ui vision 的一部分在 html 元素中查找 xpath
【发布时间】:2023-03-05 18:05:01
【问题描述】:

我需要通过 xpath 检测一个元素(带有 href 的图像),但我只知道 href 的一部分

这是html

<a href="/play.php?video=123456">
<div class="video-splash" data-src="https://myimge-555888.jpg?md5=dfgdfsdgsowVf0QnDcAg&amp;expires=16018841600&amp;origin=103&amp;mid=0df2fd8d-85b1-47da-a371-489a7328ffb4">
<div class="video-time"><i class="fas fa-play"></i> <b>HD</b> 43:25</div>
</div>
</a>

我知道视频 123456(href 的一部分)

视频号周期性变化

data-src 周期性变化

我尝试了这些 xpath,但在这种情况下不起作用

xpath=//a[contains(@href, "123456")]

xpath=//a[ends-with(@href, '123456')]/img

xpath=//a[contains(@href, '123456')]/img

如何仅使用 href 的一部分检测元素?

我只需要一个可以检测元素的 xpath。

需要一个通用的 xpath,因为某些属性是动态的 video=???data-src=???&lt;b&gt;???&lt;/b&gt; ??? &lt;/div&gt;

???动态值总是在变化,我需要通过视频编号来检测它。

我添加了更多的html代码

<div>

<h2 class="page-h2">
Performer <b>username</b> — Recent Recordings
</h2>
<div class="video-thumb">
<a href="/play.php?video=550420">
<div class="video-splash" data-src="https://v02.frontgross.com/username/2020-04-25,29-59.jpg?md5=BV75Ney9jydwiZgdITkjSg&expires=2705442700&origin=205&mid=5e5c77ca-f750-49ed-9527-725754b972f2">
<div class="video-time"><i class="fas fa-play"></i> <b>HD</b> 59:25</div>
</div>
</a>
<div class="video-info">
<div>
<a href="/?performer=username"><b>username</b></a>
</div>
<div class="video-info-sub"><span class="video-views">22.5K views</span> • 2020-04-25 29:59</div>
</div>
</div>
<div class="video-thumb">
<a href="/play.php?video=529055">
<div class="video-splash" data-src="https://v02.frontgross.com/username/2020-04-25,02-00.jpg?md5=d2GDbtiHuKT-by9A9qcMIA&expires=2705442700&origin=205&mid=5e5c77ca-f750-49ed-9527-725754b972f2">
<div class="video-time"><i class="fas fa-play"></i> <b>HD</b> 45:25</div>
</div>
</a>
<div class="video-info">
<div>
<a href="/?performer=username"><b>username</b></a>
</div>
<div class="video-info-sub"><span class="video-views">20.0K views</span> • 2020-04-25 02:00</div>
</div>
</div>
<div class="video-thumb">
<a href="/play.php?video=529725">
<div class="video-splash" data-src="https://v02.frontgross.com/username/2020-04-24,29-55.jpg?md5=RrwtygDUT_zxTPf4mC2KAw&expires=2705442700&origin=205&mid=5e5c77ca-f750-49ed-9527-725754b972f2">
<div class="video-time"><i class="fas fa-play"></i> <b>HD</b> 2:02:29</div>
</div>
</a>
<div class="video-info">
<div>
<a href="/?performer=username"><b>username</b></a>
</div>
<div class="video-info-sub"><span class="video-views">20.9K views</span> • 2020-04-24 29:55</div>
</div>
</div>
<div class="video-thumb">
<a href="/play.php?video=527092">
<div class="video-splash" data-src="https://v02.frontgross.com/username/2020-04-25,22-00.jpg?md5=unQIgoVWLXy5cBH4sPVWUw&expires=2705442700&origin=205&mid=5e5c77ca-f750-49ed-9527-725754b972f2">
<div class="video-time"><i class="fas fa-play"></i> <b>HD</b> 20:52</div>
</div>
</a>

【问题讨论】:

  • //a[contains(@href, "/play.php?video=")] 所以开始部分仍然存在?有没有其他类似的标签。
  • 试过但不起作用
  • @arundeepchohan 我添加了更多 html 代码,您的解决方案不起作用。谢谢
  • 没有意义!您将无法下载:P

标签: selenium xpath ide katalon-recorder kantu


【解决方案1】:

试试这样的。请注意,您可能需要导航到您的链接,因为我看不到您的更多 HTML,所以我现在不知道它是唯一的。

//*a[starts-with(@herf, 'sometext') and ends-with(@herf, '123456')]

【讨论】:

  • 有错误herf must be href。我试过了,但没有用
  • 我添加了更多的 html 代码,您的解决方案不起作用。谢谢建议
  • 我可以看到您有多个视频,您是否知道与您想使用的视频元素相关的任何特定内容。例如持续时间,或者可能是链接的那一部分(我假设这是动态的)。 .. 还有一件事我假设您的 HTML 没有适当的格式,它不是按节点排序的。
  • 我知道 video=XXXXXX,我想通过视频编号检测元素,但我找不到使用视频编号检测视频的 xpath。有大量视频,我有一个要打开的视频列表(视频=XXXXXX)。
  • 如果您知道视频的编号,那么为什么不使用: ( "//a[@href='/play.php?video=" + videoString+"']") 其中 videoString 是字符串变量
【解决方案2】:

这就是解决办法

xpath=//div/a[@href='/play.php?video=123456']

需要以 //div/a 开始 xpath

其他解决方案不起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多