我有一个HTML页面(使用Firefox和/或Chrome打开),并且我试图找到正在尝试点击该网页的(图片)元素的正确XPath。我使用Selenium Automation在C#中编写代码。下面是当我右键单击并选择检查时该元素的外观:C#中的Selenium XPath未找到错误#
(实际网站太长,所以我用{网站}和{不同网站}对它进行了修改)。
编辑:对不起,我忘了,但{网站}是动态的。 {不同网站}是静态的。
<a href="https://{website}">
<img border="0" alt="open now" src="https://{different-website}.gif">
</a>
我想用我的自动点击IMG,但一切我尝试失败的自动化,并说“找不到元素”。我注意到,试图点击的img嵌套在上面的{a}元素中。也许这就是为什么选择和点击非常困难。 我试过的东西,如:
driver.FindElement(By.XPath("//a[starts-with(@href='https://www.{website}')]")).Click();
driver.FindElement(By.XPath("//a[contains(@href='https://www.{website}')]")).Click();
driver.FindElement(By.XPath("//img[(@src,'img1935.gif')]")).Click();
driver.FindElement(By.XPath("//img[(@src,'img1935.gif')]/../a")).Click();
driver.FindElement(By.XPath("//a[not(@href)/img/@src | //a[img]/@href")).Click();
driver.FindElement(By.XPath("//a[@alt='open now']/@src")).Click();
driver.FindElement(By.XPath("//img[@alt='open now']/@src")).Click();
所有这些返回“找不到元素”和我卡上还有什么我应该做的,或尝试。任何建议将不胜感激。非常感谢你。
这不起作用,我也不能实际给出的网站链接,因为它的分类(因此动态行为),但我真的可以看到,当我检查网页是我想要点击嵌套在一个段落内。感谢您也试图帮助 – CRich
试试这个...转到您正在使用的页面并在开发控制台中键入$ x(“// a/img [@ alt ='open now']”)'...它返回什么? – JeffC
嗯...我有3个人在页面上输入后,我有3个相同的图像与精确的XPath。也许这就是Selenium无法找到它的原因。但是因为我有3个,它不应该找到其中的一个吗? – CRich