我正在尝试在Mac上发送Selenium Webdriver文本。我试图让它自动填充Google和搜索的搜索空白。搜索框的html如下:
<input class="gLFyf" maxlength="2048" name="q" type="text" jsaction="paste:puy29d" aria-autocomplete="both" aria-haspopup="false" autocapitalize="off" autocomplete="off" autocorrect="off" role="combobox" spellcheck="false" title="Search" value="" aria-label="Search">
因此,我想测试是否可以挑选出与搜索框相对应的上述元素。因此,我打印了以下内容以查看是否确实获得了该元素:
driver.findElements(By.className("gLFyf")).toString
但是,它没有打印上面的实际html,而是打印了
[[[ChromeDriver: chrome on MAC (a8470f41df7943e813ac6f77266ed33c)] -> class name: gLFyf]]
任何人都可以向我解释为什么我没有得到该元素吗?
答案 0 :(得分:1)
根据您要打印 Google主页搜索框元素的 html 的问题,可以使用以下解决方案:
代码块:
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
public class findElement_html {
public static void main(String[] args) {
System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();
driver.get("https://www.google.com/");
WebElement myElement = driver.findElement(By.name("q"));
System.out.println(myElement.getAttribute("outerHTML"));
}
}
控制台输出:
<input class="gsfi lst-d-f" id="lst-ib" maxlength="2048" name="q" autocomplete="off" title="Search" value="" aria-label="Search" aria-haspopup="false" role="combobox" aria-autocomplete="list" style="border: medium none; padding: 0px; margin: 0px; height: auto; width: 100%; background: transparent url("data:image/gif;base64,R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw%3D%3D") repeat scroll 0% 0%; position: absolute; z-index: 6; left: 0px; outline: currentcolor none medium;" dir="ltr" spellcheck="false" type="text">
答案 1 :(得分:0)
我不明白你想做什么? 您是否要检查是否已找到所需的元素?
所以..
adapter = new RecyclerViewAdapter(getActivity(), list);
getDatafromFirebase();
如果找不到元素,将引发异常。
您可以尝试检查定位器找到的元素数量:
Webelement element = driver.findElement...
如果未找到任何内容,它将返回0。您也可以将其与1进行比较,以确保没有任何其他具有相同类名的元素。
driver.findElements(By.className("gLFyf")).count