我必须使用java
和selenium
使this page自动化。
我必须单击带有标签terms and conditions
的链接,该链接会显示一个框,然后需要向下导航,然后单击“同意”按钮。
我已经尝试过:
driver.click("//*[@id=\"field_terms\"]/td[2]/div/div/label[1]/a"); // Click on the link
它为我打开了盒子,但我紧追不舍。
我有2个问题:
更新:
关于滚动问题,我使用了以下无效的方法:
public void scrollDown() {
JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("arguments[0].scrollTop = arguments[1];","window.scrollBy(0,450)", "");
}
答案 0 :(得分:1)
尝试使用CSS选择器找到“我同意”按钮
'div[class="ui-dialog-buttonset"]>button[btnclass="primary"]'
它在我的系统中有效。我不是Java人,这是我在python中编写的代码供您参考
driver = Chrome()
driver.get('https://signup.insly.com/signup')
terms_and_conditions = driver.find_element_by_link_text('terms and conditions')
terms_and_conditions.click()
import time
time.sleep(2)
i_agree = driver.find_element_by_css_selector(
'div[class="ui-dialog-buttonset"]>button[btnclass="primary"]'
)
i_agree.click()
答案 1 :(得分:0)
让我们从滚动开始:只使用JavaScript ...
JavascriptExecutor jsx = (JavascriptExecutor)driver;
jsx.executeScript("window.scrollBy(0,450)", "");
或者您也可以向上滚动到所需的元素...
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", your_WebElement);
对于单击“我同意”,请使用XPATH,如下所示:
"//*[text()='I AGREE']"
然后执行click()
希望这对您有帮助!
答案 2 :(得分:0)
这是Java中的代码[测试和工作]。
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/src/drivers/chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://signup.insly.com/signup");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.findElement(By.linkText("terms and conditions")).click();
//Click the I AGREE button
WebElement btnIagree = driver
.findElement(By.xpath("//button[@btnclass='primary' and contains(text(),'I agree')]"));
btnIagree.click();
//Verify the check box for T&C is checked
WebElement chkbxTnC=driver.findElement(By.xpath("//*[@id='agree_termsandconditions']/../span[@class='icon-check-empty icon-check']"));
Assert.assertTrue(chkbxTnC.isDisplayed());
问题在于,一旦您单击T&C链接,加载页面就需要几秒钟,并且由于需要等待一段时间才能点击“同意”按钮。显然,“我同意”按钮已启用且可单击,而无需向下滚动,因此此处不需要滚动。