[英]Clicking Chat Button With Selenium Java
我正在尝试使用 selenium 单击聊天按钮,该按钮在页面加载后约 3 秒内出现,它没有 id 或名称,我尝试了隐式和显式等待、Xpath、CSS 选择器、标签名称,几乎所有内容。 它只是找不到元素。 我认为 selenium 不会将该按钮视为 HTML 的一部分。 我需要你的帮助...
链接: https : //shopiqa.com/
我的代码:
TestTools.driver.get("https://shopiqa.com/");
TestTools.driver.manage().window().maximize();
TestTools.driver.manage().timeouts().implicitlyWait(5,TimeUnit.SECONDS);
TestTools.driver.findElement(By.xpath("//*[@id=\"desktop-start\"]/button")).click();
聊天按钮存在于iframe 中。您需要先切换它才能访问Chat button
。
frameToBeAvailableAndSwitchToIt
WebDriverWait
() 和frameToBeAvailableAndSwitchToIt
() 和以下 css 选择器。
然后滚动页面,然后
引入WebDriverWait
() 和elementToBeClickable
() 和 css 选择器。
driver.navigate().to("https://shopiqa.com/");
driver.manage().window().maximize();
new WebDriverWait(driver, 10).until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("iframe.envite-iframe")));
JavascriptExecutor jse = (JavascriptExecutor)driver;
jse.executeScript("window.scrollBy(0,500)");
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("div#desktop-start>button"))).click();
浏览器快照:
在您的情况下,有一个 iFrame。 首先,您可以将驱动程序切换到特定的 iFrame,然后您可以执行 click() 方法。
供您参考,您可以参考以下代码:
driver.get("https://shopiqa.com/");
WebDriverWait wait = new WebDriverWait(driver, 120);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@class='envite-iframe']")));
WebElement iframeElement = driver.findElement(By.xpath("//*[@class='envite-iframe']"));
driver.switchTo().frame(iframeElement);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@id='desktop-start']/button")));
driver.findElement(By.xpath("//*[@id='desktop-start']/button")).click();
尝试这个:
//*[@id="desktop-start"]/button/p
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.