У меня проблема с кнопкой «ПОИСК» с использованием Selenium. Мне нужно нажать кнопку «Поиск», затем вернуться на начальную страницу и снова щелкнуть ее. Мой код перемещает эту кнопку и щелкает ее совершенно нормально в первый раз, затем веб-страница возвращается к исходному URL. Затем он должен снова перемещаться по той же кнопке, но это не работает ... Я использовал много разных способов (xpath и т. Д.). В чем проблема? Вот мой ПОЛНЫЙ код. Можно скопировать его в затмение и посмотреть, о чем я говорю:Как перейти и нажать кнопку на веб-странице с помощью Selenium WebDriver?
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;
public class Search {
public static void main(String[] args) throws InterruptedException {
System.setProperty("webdriver.chrome.driver",
"chromedriver\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(100, TimeUnit.SECONDS);
// Getting the initial page
driver.get("http://pqasb.pqarchiver.com/chicagotribune/advancedsearch.html");
driver.findElement(By.xpath("//input[@value='historic']")).click();
WebElement element = driver.findElement(By.name("QryTxt"));
element.sendKeys("issue");
driver.findElement(
By.xpath("//input[@value='Search'][@onclick='return checkinput(this.form, 0);'][@type='button']"))
.click();
// Getting back to the initial page
driver.get("http://pqasb.pqarchiver.com/chicagotribune/advancedsearch.html");
driver.findElement(
By.xpath("//input[@value='Search'][@onclick='return checkinput(this.form, 0);'][@type='button']"))
.click();
/**
* This command does not execute. It is supposed to click on the button
* "SEARCH" It worked well in the above identical code line, however now
* it just does not recognize the existence of this button How can I
* overcome this issue? I tried navigating this button by all different
* means (xpath etc...)
*/
}
}
Что произойдет, если вы явный ждать HTTP: //docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#explicit-waits – jithujose
@jithujose Я попробовал это. Это тоже не работает. – Buras
@jithujose Вот как я устал явным ждать. WebDriverWait wait = новый WebDriverWait (драйвер, 60); \t \t wait.until (ExpectedConditions.visibilityOfElementLocated (By.xpath ("// input [@ value = 'Search'] [@ onclick = 'return checkinput (this.form, 0);'] [@ type = 'button «]"))); \t \t driver.findElement ( \t \t \t \t By.xpath ("// ввод [@ значение = 'Поиск'] [@ OnClick = 'возвращение checkinput (this.form, 0);'] [@ тип =» кнопка '] ")) \t \t \t \t .click(); – Buras