所以我有一个JavaFX TextField,我希望使用该文本输入在网页上找到输入的值。这是代码:
private static TextField ItemColor = new TextField();
然后,
String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href");
driver.get(color);
而不是' Brick'作为值,我试图在那里获得ItemColor文本。
我已经尝试将ItemColor.getText()放在那里,但它不起作用。任何帮助表示赞赏!
编辑,因为上面的代码显然不够完整。它一直有效,直到String color = driver.findElement(By.xpath(" // a [@ data-style-name =' Brick']"))。getAttribute(&# 34; HREF&#34);线。
public static void supremeBot()
{
System.setProperty("webdriver.chrome.driver", "C:\\Program Files\\chromedriver_win32\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
String url = Category.getText();
driver.get(url);
while(driver.findElements(By.linkText(Item.getText())).isEmpty())
driver.navigate().refresh();
double starttime = (double)System.currentTimeMillis() / 1000;
String productlink = driver.findElement(By.linkText(Item.getText())).getAttribute("href");
driver.get(productlink);
String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href");
driver.get(color);
WebElement selectsize = driver.findElement(By.name("size"));
List<WebElement> sizeoptions = selectsize.findElements(By.tagName("option"));
for (WebElement option : sizeoptions)
{
if(option.getText().equals(Size.getText()))
option.click();
}
然后更多代码,但错误发生在String颜色 - XPath行。
String color = driver.findElement(By.xpath("//a[@data-style-name='Brick']")).getAttribute("href"); THIS WORKS
String color = driver.findElement(By.xpath("//a[@data-style-name=ItemColor.getText()]")).getAttribute("href"); THIS DOESN'T WORK
String color = driver.findElement(By.xpath("//a[@data-style-name='ItemColor.getText()']")).getAttribute("href"); THIS DOESN'T WORK
答案 0 :(得分:0)
代码行
String color = driver.findElement(By.xpath("//a[@data-style-name='ItemColor.getText()']"))
.getAttribute("href");
只包含"ItemColor.getText()"
作为硬编码字符串;没有实际调用ItemColor.getText()
方法。您需要调用该方法并将传递给By.xpath(..)
方法的字符串中的方法调用的结果连接起来:
String color = driver.findElement(By.xpath("//a[@data-style-name='" + ItemColor.getText()+ "']"))
.getAttribute("href");