问题描述
我尝试在 https://www.phptravels.net/admin 中练习 selenium 自动化,但无法输入用户名。
private By username = By.xpath("//input[@type='text'][@name='email']");
Actions inputAct = new Actions(mngr.getDriver());
inputAct.click().sendKeys("admin@PHPtravels.com").perform();
mngr.getDriver().findElement(page.getUsername()).sendKeys("admin@PHPtravels.com");
我在开发者工具中搜索了 xpath ahs 的唯一元素。为什么它不能输入用户名。谢谢。
解决方法
这对我有用:
RemoteWebDriver driver = new FirefoxDriver();
driver.get("https://www.phptravels.net/admin");
WebElement emailInput = driver.findElement(new By.ByXPath("//input[@type='text'][@name='email']"));
emailInput.sendKeys("TEST TEST TEST");
driver.close();
,
你需要绕过硒的检测方法。
ChromeOptions options = new ChromeOptions();
IWebDriver driver;
options.AddArguments("--disable-notifications");
options.AddArguments("--no-zygote");
options.AddArguments("--disable-accelerated-2d-canvas");
options.AddArguments("--disable-setuid-sandbox");
options.AddArguments("--no-first-run");
options.AddArguments("--disable-2d-canvas-clip-aa");
options.AddArgument($"--user-agent={UA}");
options.AddArguments("start-maximized");
options.AddArguments("--blink-settings=imagesEnabled=false");
options.AddUserProfilePreference("profile.default_content_setting_values.css",2);
options.AddArguments("--disable-gpu");
options.AddArgument("ignore-certificate-errors");
options.AddExcludedArguments(new List<string>() { "enable-automation" });
options.AddArguments("--disable-blink-features=AutomationControlled");
IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
string title = (string)js.ExecuteScript("Object.defineProperty(navigator,'webdriver',{get: () => false})");
driver.Navigate().GoToUrl("https://www.phptravels.net/admin");
new WebDriverWait(driver,TimeSpan.FromSeconds(5)).Until(ExpectedConditions.ElementToBeClickable(By.XPath("/html/body/div[2]/form[1]/div[1]/label[1]/input"))).SendKeys("jdhfshshdf");