为什么有些网站不能使用Selenium实现自动化
我试着自动化网页,但不明白为什么网站不能导航到下一页 我的剧本是 打开页面->以2587051083的身份输入MTCN->单击“继续”按钮 但单击后,什么也不显示。虽然手动复制相同的步骤效果很好。这类网站是否缺少任何浏览器设置?我不知所措为什么有些网站不能使用Selenium实现自动化,selenium,google-chrome,selenium-webdriver,webdriver,selenium-chromedriver,Selenium,Google Chrome,Selenium Webdriver,Webdriver,Selenium Chromedriver,我试着自动化网页,但不明白为什么网站不能导航到下一页 我的剧本是 打开页面->以2587051083的身份输入MTCN->单击“继续”按钮 但单击后,什么也不显示。虽然手动复制相同的步骤效果很好。这类网站是否缺少任何浏览器设置?我不知所措 public static void main(String ar[]) { System.setProperty("webdriver.chrome.driver","D:\\Study\\selenium-java-2.48.2\\sele
public static void main(String ar[]) {
System.setProperty("webdriver.chrome.driver","D:\\Study\\selenium-java-2.48.2\\selenium-2.48.2\\chromedriver.exe");
driver=new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.manage().window().maximize();
driver.get("https://www.westernunion.com/global-service/track-transfer");
driver.findElement(By.xpath("//input[@id='trackingNumber']")).sendKeys("2587051083");
driver.findElement(By.xpath("//button[@id='button-track-transfer']")).click();
}
关于
https://www.westernunion.com/global-service/track-transfer
web页面要在跟踪字段中发送字符序列,我对您自己的代码进行了一些小的修改,使WebDriverwait能够单击所需的元素,然后调用click()
在文本为的元素上继续执行以下操作:
- 代码块:
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.chrome.ChromeOptions; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; public class westernunion { public static void main(String[] args) { System.setProperty("webdriver.chrome.driver","C:\\Utility\\BrowserDrivers\\chromedriver.exe"); ChromeOptions opt = new ChromeOptions(); opt.addArguments("start-maximized"); opt.addArguments("disable-infobars"); opt.addArguments("--disable-extensions"); WebDriver driver=new ChromeDriver(opt); driver.get("https://www.westernunion.com/global-service/track-transfer"); new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.cssSelector("input.new-field.form-control.tt-mtcn.ng-pristine.ng-valid-mask"))).sendKeys("2587051083"); driver.findElement(By.cssSelector("button.btn.btn-primary.btn-lg.btn-block.background-color-teal.remove-margin#button-track-transfer")).click(); } }
点击()
确实发生了,而且微调器会显示一段时间,但是搜索被中断,在检查网页时,您会发现一些
标记和
标记指的是具有关键字dist的css。例如:
蒸馏 根据该条: Distil通过观察网站行为和识别刮刀特有的模式,保护网站免受自动内容刮刀的攻击。当Distil在一个站点上识别出恶意bot时,它会创建一个黑名单上的行为配置文件,并部署到其所有客户。类似于机器人防火墙,Distil检测模式并做出反应 此外
“Selenium的一种模式是自动窃取网络内容”
,Distil首席执行官Rami Essaid上周在一次采访中说<代码>“尽管他们可以创建新的机器人,但我们找到了一种方法来识别他们正在使用的工具Selenium,因此无论他们在该机器人上迭代多少次,我们都会阻止Selenium。我们现在使用Python和许多不同的技术来实现这一点。一旦我们看到一种类型的机器人出现了一种模式,我们就会对他们使用的技术进行逆向工程,并将其识别为恶意的。
参考文献 您可以在以下内容中找到一些详细的讨论:
sessionId
尝试使用Firefox谢谢您的帮助,我也可以通过脚本输入文本并单击按钮,但问题是在单击“继续”按钮之后出现的。您是否可以e是否导航到下一页?我正在寻找下一页…任何方式都非常感谢您的努力和时间。祝您度过愉快的一天。@Nakul查看我的答案更新并让我知道状态。我已经浏览了这些链接,似乎我们无法自动处理这些受保护的网站。任何方式都非常感谢您提供的详细说明/链接。