@DebanjanB-您好。我已经使用Selenium chrome驱动程序自动下载了一个网站。但是,当我以无头模式运行chrome时,无法找到要单击以下载文件的复选框。您能帮我解决这个问题吗?
下面是我的代码:
import org.openqa.selenium.chrome.ChromeOptions
import org.openqa.selenium.chrome.ChromeDriver
import org.openqa.selenium.By
import scala.collection.mutable.HashMap
object selen extends App{
val chromeOptions = new ChromeOptions()
chromeOptions.addArguments("--headless")
new ChromeDriver(chromeOptions)
val driver = new ChromeDriver(chromeOptions)
driver.get("url")
driver.findElement(By.id("isc_S")).sendKeys("Username")
driver.findElement(By.id("isc_V")).sendKeys("Password")
driver.findElement(By.id("isc_Z")).click
println("Logged in")
driver.manage.window.maximize
Thread.sleep(5000);
driver.findElement(By.cssSelector("#isc_36 > table > tbody > tr > td")).click()
println("clicked Dashboard")
Thread.sleep(5000);
var count = 1
for (i <- 1 to 9) {
for (j <- 1 to 5) {
driver.findElement(By.xpath("//*[@id=\"isc_5Ptable\"]/tbody/tr[" + count + "]/td[1]/div/span")).click()
driver.findElement(By.id("isc_64")).click()
Thread.sleep(4000)
driver.findElement(By.xpath("//*[@id=\"isc_5Ptable\"]/tbody/tr[" + count + "]/td[1]/div/span")).click()
count+=1
}
var count2 = 10
while(count2 > 0)
{
driver.findElement(By.xpath("//*[@id=\"isc_5Q\"]/img[3]")).click()
count2 -= 1
}
}
driver.close()
}
以下是该复选框的html,该复选框不在无头chrome驱动程序中:
span style =“ display:inline-block; background-size:100%100%; background-image:url(” https://ford-ddlive.clifford-thames.com/datadistribution/sc/skins/ford/images/DynamicForm/unchecked.png");width:13px;height:13px;vertical-align:text-top;margin-left:2px;margin-right:2px“ eventpart =” valueicon“>
答案 0 :(得分:0)
考虑使用显式等待(FluentWait)代替sleep()和findElement()
答案 1 :(得分:0)
也许您的元素不在视口中,因为无头的chrome可能具有与普通工作区不同的分辨率。
因此,尝试通过在chromeOptions.addArguments("--start-maximised")
行之后添加chromeOptions.addArguments("--headless")
来最大化无头chrome。