0

在此处输入图像描述

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

4 回答 4

1

尝试使用 webdriver 单击等待元素正确加载Dom并准备好接收click

WebDriverWait wait = new WebDriverWait(driver, 40);

wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//a[.='Apply Now']"))).click();
于 2020-02-01T21:25:36.453 回答
0

选项 1 尝试 By.CssSelector 选项 2 不确定是否在单击之前检查元素是否存在。如果不存在,则使用 wait.until。如果可能出现粘贴错误,您将来到这里。希望这可以帮助。

于 2020-02-01T14:04:58.657 回答
0

所需的元素是一个动态元素,因此要定位并click()在您需要诱导WebDriverWait的元素上elementToBeClickable(),您可以使用以下任一Locator Strategies

  • 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();
    
于 2020-02-01T19:37:17.653 回答
0

请试试这个,也许它会有所帮助

driver.findElement(By.id("select2-section-tn-container")).click();
于 2020-02-01T20:23:30.747 回答