簡體   English   中英

如何通過 Selenium 的 XPath 訪問 WebElement?

[英]How to access WebElement by XPath by Selenium?

我需要訪問該網站上搜索結果的鏈接( https://www.pibr.org.pl/pl/search/auditor?biegli=1&firmy=1&name=&post_code=&city=Warszawa )並將它們放在WebElement ,但是我無法按課程或任何東西找到它們。 使用xpath

MyWebDriver.findElement(By.xpath("//div[@class=inner-results firma]")).click();

我收到此錯誤:

"Given xpath expression "//div[@class=inner-results firma]" is invalid: SyntaxError: The expression is not a legal expression."

如何訪問所有結果鏈接?

xpath應該是"//div[@class='inner-results firma']" ,在class屬性周圍加上引號。 您還應該使用findElements來獲得多個結果

MyWebDriver.findElements(By.xpath("//div[@class='inner-results firm']")).click();

作為旁注,Java 中的變量應以小寫開頭, MyWebDriver -> myWebDriver

您需要將類名放在單引號中,請使用以下命令獲取鏈接: MyWebDriver.findElement(By.xpath("//div[@class='inner-results firma']")).click();

雖然這只會單擊類的第一個元素,但如果您想獲取所有鏈接,然后單擊第一個鏈接,則可以使用: MyWebDriver.findElements(By.xpath("//div[@class='inner-results firma']")).get(0).click(); 通過使用此 xpath,您可以通過在 get(index) 方法中發送索引來單擊頁面上提到的任何鏈接。

請在下面的代碼片段中提供鏈接存儲在網絡列表中:

 import java.awt.AWTException; import java.util.List; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.testng.annotations.Test; public class Testing { public static WebDriver driver; @Test public void test() throws InterruptedException, AWTException { System.setProperty("webdriver.chrome.driver", "./Driver/chromedriver"); driver = new ChromeDriver(); driver.get("https://www.pibr.org.pl/pl/search/auditor?biegli=1&firmy=1&name=&post_code=&city=Warszawa"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS); List<WebElement> fromDropDwon = driver.findElements(By.xpath("/html/body/div[2]/div/div[2]/div/h3/a")); for (WebElement element : fromDropDwon) { System.out.println(element.getAttribute("href")); } } }

輸出:

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM