无法使用Selenium C#定位WebElement

lyr7nygr  于 2023-02-04  发布在  C#
关注(0)|答案(1)|浏览(177)

我一直在敲我的头试图找出为什么我不能定位和点击这个网页元素!
我想做的事情很简单,我想点击下面列表中的任何一项:worten list of airpods我基本上是在尝试定位并单击此类元素:

完全不可能。任何帮助都将不胜感激。
我已经尝试了我能记住的每一种xpath类型,唯一接近工作的是当我直接从浏览器复制完整的xpath时,但即使这样,也会出现另一个错误,说明该元素不可单击...显然我不想处理完整的xpath。
尝试的xpath示例:

  • //a[@data-sku ='7328250']及其变体(使用@href代替@data-sku等)
  • 相同的事情,但是使用CSS选择器。
hxzsmxv2

hxzsmxv21#

根据所提供的snapshot,单击所需元素时,您可以使用<a>元素的 aria-label 属性,并诱导WebDriverWait以获得所需的ElementToBeClickable(),您可以使用以下任一定位器策略:

  • 使用 CssSelector
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.CssSelector("a[aria-label^='APPLE Airpods Pro 2ª Geração']")));
  • 使用 XPath
IWebElement element = new WebDriverWait(driver, TimeSpan.FromSeconds(20)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("//a[starts-with(@aria-label, 'APPLE Airpods Pro 2ª Geração')]")));

相关问题