目前我正在编写一个可以无限循环工作的网络刮刀。它获取一个页面,搜索一些按钮并单击其中一个按钮。但有时它不会!我保存了一个屏幕截图,以防一些失败,它显示我点击按钮后页面没有改变。
driver.find_element_by_xpath('//input[@name = "btn"]').click()
time.sleep(3)
我绕过这个循环检查我们是否仍然看到该元素。
while driver.find_elements_by_xpath('//input[@name = "Submit"]') != []:
driver.find_element_by_xpath('//input[@name = "Submit"]').click()
但希望找到这个的根本原因。它可能是什么?
答案 0 :(得分:1)
我的申请也遇到了类似的问题。单击元素到动作类对我有用。 以下是Java中的示例代码:
WebElement webElement = driver.findElement(By.id("Your ID Here"));
Actions builder = new Actions(driver);
builder.moveToElement(webElement).click(webElement);
builder.perform();
如果点击动作类不起作用,您也可以尝试通过Javascript点击元素。
WebElement webElement = driver.findElement(By.id("Your ID here"));
JavascriptExecutor executor = (JavascriptExecutor) driver;
executor.executeScript("arguments[0].click();", webElement);