我一直在尝试在网站上进行注册,我已经为用户提供了以下脚本,
package agent;
import java.util.regex.Pattern;
import java.awt.List;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.*;
import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.FluentWait;
import org.openqa.selenium.support.ui.Select;
import org.openqa.selenium.support.ui.WebDriverWait;
public class TaxRegistration {
private static final TaxRegistration Driver = null;
private WebDriver driver;
WebDriverWait wait;
private String baseUrl;
private boolean acceptNextAlert = true;
private StringBuffer verificationErrors = new StringBuffer();
private By tagText = By.id("AddressDetails_City");
@Before
public void setUp() throws Exception {
System.setProperty("webdriver.chrome.driver","E:/Vignesh/Automation/New folder (2)/chromedriver.exe");
driver = new ChromeDriver();
driver.manage().window().maximize();
wait = new WebDriverWait(driver, 5);
baseUrl = "http://govreports.com.au/dev/taxagentt1.html";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
@Test
public void testBASFormWebdriver() throws Exception {
driver.get("http://govreports.com.au/dev/taxagentt1.html");
driver.findElement(By.id("BAS")).click();
Thread.sleep(1000);
driver.findElement(By.id("TFND")).click();
Thread.sleep(1000);
driver.findElement(By.id("PAYG")).click();
Thread.sleep(1000);
driver.findElement(By.id("TPAR")).click();
Thread.sleep(1000);
//((JavascriptExecutor)driver).executeScript("scroll(0,2000)");
Thread.sleep(1000);
driver.findElement(By.id("OUT")).click();
Thread.sleep(1000);
//((JavascriptExecutor)driver).executeScript("scroll(0,1000)");
Thread.sleep(1000);
driver.findElement(By.id("BUL")).click();
Thread.sleep(1000);
driver.findElement(By.id("NUL")).click();
Thread.sleep(1000);
driver.findElement(By.id("IUL")).click();
Thread.sleep(1000);
//((JavascriptExecutor)driver).executeScript("scroll(0,6000)");
Thread.sleep(1000);
driver.findElement(By.cssSelector("a.btn.btn-default > b")).click();
Thread.sleep(2000);
driver.findElement(By.id("AgentNo")).clear();
driver.findElement(By.id("AgentNo")).sendKeys("78301003");
driver.findElement(By.id("AgentName")).clear();
driver.findElement(By.id("AgentName")).sendKeys("Vignesh Check");
driver.findElement(By.id("SendQuote")).click();
Thread.sleep(2000);
driver.findElement(By.xpath("(//input[@name='plancodeTPAR'])[2]")).click();
driver.findElement(By.xpath("(//input[@value='1'])[9]")).clear();
driver.findElement(By.xpath("(//input[@value='1'])[9]")).sendKeys("2");
driver.findElement(By.id("Proceed")).click();
Thread.sleep(5000);
driver.findElement(By.id("ABN")).click();
driver.findElement(By.id("ABN")).clear();
driver.findElement(By.id("ABN")).sendKeys("19087046080");
driver.findElement(By.id("BusinessName")).click();
Thread.sleep(2000);
driver.findElement(By.id("Username")).clear();
driver.findElement(By.id("Username")).sendKeys("[email protected]");
driver.findElement(By.id("Password")).clear();
driver.findElement(By.id("Password")).sendKeys("Viki2607");
driver.findElement(By.id("ConfirmPassword")).clear();
driver.findElement(By.id("ConfirmPassword")).sendKeys("Viki2607");
String capColorDropDown = "//span[@role='listbox']";
driver.findElement(By.xpath(capColorDropDown)).click();
String itemName = "Orange";
String listId = "color_listbox";
Thread.sleep(2000);
String xpathForItem = "//ul[@id='Salutation_listbox']/li[@class='k-item' and text()='Mr']";
driver.findElement(By.xpath(xpathForItem)).click();
driver.findElement(By.id("FirstName")).click();
driver.findElement(By.id("FirstName")).clear();
driver.findElement(By.id("FirstName")).sendKeys("Vignesh");
driver.findElement(By.id("LastName")).click();
driver.findElement(By.id("LastName")).clear();
driver.findElement(By.id("LastName")).sendKeys("Ks");
driver.findElement(By.id("TelephoneAreaCode")).click();
driver.findElement(By.id("TelephoneAreaCode")).clear();
driver.findElement(By.id("TelephoneAreaCode")).sendKeys("02");
driver.findElement(By.id("TelephoneNumber")).click();
driver.findElement(By.id("TelephoneNumber")).clear();
driver.findElement(By.id("TelephoneNumber")).sendKeys("2356895623");
driver.findElement(By.id("AddressDetails_Line1")).clear();
driver.findElement(By.id("AddressDetails_Line1")).sendKeys("Walker Street");
//我必须从下拉值(自动完成文本框)中选择城市,但我在下面的行中使用了它,但它对我不起作用
**`
driver.findElement(By.id("AddressDetails_City")).click();`
wait.until(ExpectedConditions.presenceOfElementLocated(tagText));
WebElement textBoxElement = driver.findElement(tagText);
textBoxElement.sendKeys("sydn");
selectOptionWithText("SYDNEY, NSW, Australia, 1001");
//selectOptionWithIndex(0);**
Thread.sleep(2000);
driver.findElement(By.linkText("Next")).click();
Thread.sleep(2000);
}
private void selectOptionWithIndex(int i) {
// TODO Auto-generated method stub
}
private void selectOptionWithText(String string) {
// TODO Auto-generated method stub
}
@After
public void tearDown() throws Exception {
driver.quit();
String verificationErrorString = verificationErrors.toString();
if (!"".equals(verificationErrorString)) {
fail(verificationErrorString);
}
}
private boolean isElementPresent(By by) {
try {
driver.findElement(by);
return true;
} catch (NoSuchElementException e) {
return false;
}
}
private boolean isAlertPresent() {
try {
driver.switchTo().alert();
return true;
} catch (NoAlertPresentException e) {
return false;
}
}
private String closeAlertAndGetItsText() {
try {
Alert alert = driver.switchTo().alert();
String alertText = alert.getText();
if (acceptNextAlert) {
alert.accept();
} else {
alert.dismiss();
}
return alertText;
} finally {
acceptNextAlert = true;
}
}
}
我无法在地址部分填写城市,州,邮政编码和国家/地区字段。我无法在那些字段中访问自动完成值。我在脚本中用**符号突出显示了问题区域。
我认为该网站可以公开访问。有人可以为我提供解决方案吗?
最佳答案
您能否单独注释掉该URL,因为您在脚本中提到的URL表示“由于不活动而注销”。
关于javascript - Selenium Webdriver自动完成文本框,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39610461/