Как получить доступ к WebElement от XPath от Selenium? - PullRequest
0 голосов
/ 18 февраля 2019

Мне нужно получить доступ к ссылкам на результат поиска на этом веб-сайте (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."

Как получить доступ ко всем ссылкам на результаты?

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Вам нужно поместить имя класса в одинарные кавычки, используйте приведенную ниже команду, чтобы получить ссылки: 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).

0 голосов
/ 18 февраля 2019

Пожалуйста, фрагмент кода ниже, который даст вам магазин ссылок в веб-списке:

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"));
		}
	}
}

Вывод:

enter image description here Пожалуйста, ответьте и примите ответ, если он соответствует вашим требованиям.

0 голосов
/ 18 февраля 2019

xpath должно быть "//div[@class='inner-results firma']" с кавычками вокруг значения атрибута class .Вы также должны использовать findElements, чтобы получить более одного результата

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

В качестве примечания, переменные в Java должны начинаться со строчной буквы, MyWebDriver -> myWebDriver

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...