我試着使用硒的webdriver點擊一個鏈接的文本,但不工作,硒的webdriver的XPath不工作
下面是使用螢火我的照片
在Firefox得到了xpath
html/body/div[1]/div/div/div[2]/div[2]/div[2]/a
我用
driver.findElement(By.xpath("html/body/div[1]/div/div/div[2]/div[2]/div[2]/a")).click();
但仍然不起作用,任何理由爲何?
我試着使用硒的webdriver點擊一個鏈接的文本,但不工作,硒的webdriver的XPath不工作
下面是使用螢火我的照片
在Firefox得到了xpath
html/body/div[1]/div/div/div[2]/div[2]/div[2]/a
我用
driver.findElement(By.xpath("html/body/div[1]/div/div/div[2]/div[2]/div[2]/a")).click();
但仍然不起作用,任何理由爲何?
我看到name屬性在你的HTML代碼,但元素類型hidden.Selenium不隱藏elements.Try使用像「//input[@id='offerId']/..//a
」
第一其它路徑回答你的問題在評論-4相互作用,有兩種方法可以寫xpath。
相對的xpath:此XPath以 「//」,其指示開始,搜索元件從在DOM
絕對的xpath的特定位置:此XPath開始html/body
,這表明,搜索該元件從DOM
相對的xpath搜索的所述第一標籤是比絕對的xpath搜索更快,因爲它從特定位置處的文檔中搜索沒有從DOM的根。
來到你的主要問題:
能否請您嘗試使用下面的代碼: driver.findElement(By.xpath("//*[text()='HTML CODE']"))
和driver.findElement(By.xpath("//*[text()='Offer Selection']"))
希望這有助於:)
我必須同時使用這兩個或只是您提供的代碼之一嗎?並且會是'driver.findElement(By.xpath(「// * [text()='在g ...上賺取高達2.5%]」))。click();' – user6401108
您可以使用標識網頁上各個元素的xpath。 –
嘗試下面的代碼,點擊使用鏈接部分鏈接文本。
wait.until(ExpectedConditions.elementToBeClickable(By.partialLinkText("EARN up to 2.5% on")));
driver.findElement(By.partialLinkText("EARN up to 2.5% on")).click();
可能有多種原因。一些想到的:1)你的HTML截圖說明了一些關於iframe的內容;你的場景中是否包含框架? 2)任何以「html」開頭的XPath都沒有正確優化,並且幾乎保證是脆弱的。 – SiKing
檢查,代碼中沒有iFrames ...嘗試使用'driver.findelement(By.name)',仍然沒有工作 – user6401108
請澄清「不工作」! – SiKing