如何在Selenium webdriver的文本框中输入数值.代码如下: sendKeys()方法不适用于数值,是否有整数的替代命令.
@FindBy(id="toolbox-options-key")
private WebElement BillingRateTextBox;
public void createNewBill(String billingRate)
{
BillingRateTextBox.sendKeys(10);
}
Run Code Online (Sandbox Code Playgroud) 我们的应用程序包含Web元素表.我的目的是检查内容表是否按字母顺序排列.
WebDriver d=new FirefoxDriver();
d.get("http://www.javatpoint.com/wrapper-class-in-java");
WebElement table=d.findElement(By.xpath(".//*[@id='city']/table/tbody"));
List<WebElement> lst=table.findElements(By.tagName("tr"));
System.out.println(lst);
List ls=new ArrayList<String>();
for(int i=0;i<=6;i++)
{
ls=lst.addAll(get(i).getText())
}
Run Code Online (Sandbox Code Playgroud)
我的目标是将字符串类型webelement存储在一个列表中,并创建另一个列表,该列表在最后比较两个列表中是排序类型.请帮忙.
当我运行我的selenium代码时,我收到错误"错误:找到参数'--webdriver-port'这是不期望的,或者在此上下文中无效"
我正在使用Firefox 48.0使用gecko驱动程序我已经初始化了浏览器.并得到上述错误.
如何在地址栏中标识具有特定网址的现有打开的Chrome窗口,并使用C#中的Selenium网络驱动程序在该窗口中打开新标签?我看到的所有示例都显示了如何在Selenium ChromeDriver中打开的窗口中打开新选项卡.
IWebDriver driver = null;
var chromeDriverService = ChromeDriverService.CreateDefaultService();
chromeDriverService.HideCommandPromptWindow = true;
driver = new ChromeDriver(chromeDriverService);
List<string> tabs = new List<string>(driver.WindowHandles);
Run Code Online (Sandbox Code Playgroud)
driver.WindowHandles总是返回ChromeDriver打开的窗口.但是,我正在寻找所有的窗户.一旦执行实例化ChromeDriver的行,就会打开一个新窗口.但是,我需要在现有窗口的新选项卡中打开一个新URL.
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
public class NewGmail {
public static void main(String[] args) {
WebDriver driver = new FirefoxDriver();
driver.manage().window().maximize();
String url = "https://accounts.google.com/signin";
driver.get(url);
driver.findElement(By.id("identifierId")).sendKeys("cp8805");
//driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
WebDriverWait wait=new WebDriverWait(driver, 20);
driver.findElement(By.xpath("//span[@class='RveJvd snByac']")).click();
driver.manage().timeouts().implicitlyWait(40, TimeUnit.SECONDS);
driver.findElement(By.xpath("//input[@class='whsOnd zHQkBf']")).sendKeys("xxxxxx");
driver.findElement(By.xpath("//span[@class='RveJvd snByac']")).click();
}
}
Run Code Online (Sandbox Code Playgroud)
在邮件ID之后我的密码也写在id框选项中,服务器重定向到下一个密码页面.我想问一下我将做什么,以便我的密码只能输入密码页面.
对于Web应用程序自动化,Selenium可以与Robot框架一起使用。但是两者都是框架,两者之间是什么关系?
如何更改此方法以使用不同数量的元素?有时可能有3个元素,另一个时间5.我希望这个循环可以找到元素,只要它能找到它,如果没有,就可以打破.现在,当只有3个元素时,会出现"无法定位元素"的错误,测试失败.
public void checkProductsInOrder() {
for (int i = 1; i <= 5; i++) {
WebElement element = driver.findElement(By.xpath("(//td[@data-id=\"product_name\"])[" + i + "]"));
wait.until(ExpectedConditions.visibilityOf(element));
productsInOrder.add(element.getText());
}
Run Code Online (Sandbox Code Playgroud) 我正试图在食品配送网站上为每个餐馆的网上刮取美元符号评级,但是,没有可用的xpath.
<!-- react-text: 2108 -->
"$$"
<!-- /react-text -->
Run Code Online (Sandbox Code Playgroud)
以上代码是我查看网站时用于美元评级的代码.我尝试过使用上面的直线:
<i class="icon-bullet--small">·</i>
Run Code Online (Sandbox Code Playgroud)
但是,这会输出期间,因为它不是美元评级.我也尝试过使用:
cost = ['//li[{}]/a/div[2]/p[2]/!'.format(x) for x in range(1, 999)]
Run Code Online (Sandbox Code Playgroud)
以及在xpath中使用"! - "和"react"和"react-text",但它们都不起作用.有关如何处理此问题的任何建议?
这是有效的,但我想使用文本Group 1作为变量.
代码试用:
[FindsBy(How = How.XPath, Using = "(.//*[normalize-space(text()) and normalize-space(.)= 'Group 1'])[1]/ancestor::app-organization//*[normalize-space(text()) and normalize-space(.)='Create a new board...']/following::input[1]")]
public IWebElement BoardNameInputField { get; set; }
Run Code Online (Sandbox Code Playgroud)
我试过这个但没有成功:
string boardName = "Group 1";
[FindsBy(How = How.XPath, Using = "(.//*[normalize-space(text()) and normalize-space(.)='${boardName}'])[1]/ancestor::app-organization//*[normalize-space(text()) and normalize-space(.)='Create a new board...']")]
public IWebElement CreateNewBoard { get; set; }
Run Code Online (Sandbox Code Playgroud)
是否有可能做到这一点?
代码如下:
import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertTrue;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
public class ContactPageElements {
public static WebElement element = null;
public static String baseURL1 = "http://something.com";
//Clicking logo should take you back to the baseURL
public static void clickLogo (WebDriver driver) {
element = driver.findElement(By.xpath(".//*[@id='blah'"));
element.click();
String currentURL = driver.getCurrentUrl();
assert.assertEquals(currentURL, baseURL1);
}
}
Run Code Online (Sandbox Code Playgroud)
对于断言,我收到错误:“类型不匹配:无法从 void 转换为布尔值”