繁体   English   中英

使用 Selenium Java 单击聊天按钮

[英]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();

图片: 尝试单击 envite 按钮

聊天按钮存在于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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM