Как нажать на кнопку Применить сейчас - PullRequest
0 голосов
/ 01 февраля 2020

enter image description here

HTML:

<a href="https://stgtest.flexforceondemand.com/associateregistration/consenttoproceed?bid=U20xNFozbFBkV0pFZWpWWlpGRjRVMUZJZUVwWFFUMDlPanBnTHhJRmY4R1VRWVh6aFVHN2swcW0%2A&amp;zc=VkdSdVVGZHRTbEZVY3pkWFRYZGFkRTVTUVhFclp6MDlPanJFTUVSazZNV0ErYTdlZ0ovR1BhWng%2A" class="btn btn-success btn-lg">Apply Now</a>

Я уже пробовал следующее:

driver.findElement(By.xpath("//a[text()='Apply Now']")).click();
driver.findElement(By.xpath("(.//[@href='Apply Now'])")).click();
driver.findElement(By.xpath("//a[@href='Apply Now']")).click();
driver.findElement(By.linkText("Apply Now")).click();
driver.findElement(By.className("Apply Now")).click(); 
driver.findElement(By.xpath("//div[contains(@class,'btn btn-success btn-lg')]")).click();
driver.findElement(By.xpath("//div[contains(@class,'btn btn-success btn-lg')]")).click();v

Ответы [ 4 ]

1 голос
/ 02 февраля 2020

Попробуйте щелкнуть веб-драйвером, дождитесь, пока элемент будет правильно загружен в Dom и готов к приему click.

WebDriverWait wait = new WebDriverWait(driver, 40);

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[.='Apply Now']"))).click();
0 голосов
/ 01 февраля 2020

Требуемый элемент является динамическим c элементом, поэтому для определения местоположения и click() на элементе вам нужно вызвать WebDriverWait для elementToBeClickable(), и вы можете использовать любой из следующих Стратегии локатора :

  • linkText:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Apply Now"))).click();
    
  • cssSelector:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("a.btn.btn-success.btn-lg[href*='associateregistration']"))).click();
    
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='btn btn-success btn-lg' and contains(@href, 'associateregistration')][text()='Apply Now']"))).click();
    
0 голосов
/ 01 февраля 2020

Попробуйте, пожалуйста, возможно, это поможет

driver.findElement(By.id("select2-section-tn-container")).click();
0 голосов
/ 01 февраля 2020

Вариант 1 Попробуйте By.CssSelector Вариант 2 Не уверен, если вы проверяете, существует ли элемент, прежде чем щелкнуть по нему. Если нет, тогда используйте wait.until. Если возможно, вставьте ошибку, которую вы получаете здесь. Надеюсь, это поможет.

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