第一次单击复选框有效,但第二次不起作用[Selenium]

时间:2019-10-22 20:00:09

标签: javascript python html selenium automation

因此,我需要开具发票。

首先,我单击复选框以选择当前页面上的所有发票。然后,我单击发布按钮,最后批准它们被发布。

发出当前发票后,下一页上的发票会自动出现。

我想对下一个重复相同的过程,但是我不能像第一次那样单击复选框。没有任何反应,它不会产生任何错误。只是什么也没有发生。

这是html html

@ King11 ss

a >= b

编辑:我找到了解决方案,方法是编写一个循环,使浏览器在每次发出发票时刷新一次

value > 123

2 个答案:

答案 0 :(得分:0)

尝试使用ActionsChains。首先,您必须使用以下行将其导入:

from selenium.webdriver.common.action_chains import ActionChains

 time.sleep(8) --wait until invoice screen appears
 WebElement temp = driver.findElement(By.cssSelector("i[class='ion-android-checkbox-outline-blank']"));
 action=ActionChains(driver)
 action.click(temp).preform(); --selecting checkbox
 driver.find_element_by_xpath("//button[contains(text(),'Sil')]").click() --clicking on the sent button
 driver.find_element_by_xpath("//button[contains(text(),'Evet')]").click() --approve to sent
 time.sleep(12) --wait till current invoices are sent and checkbox become re-eligible to select

 action.click(temp).preform(); 

希望这会有所帮助。

答案 1 :(得分:0)

请等待,直到复选框元素可单击,然后执行单击。

element = WebDriverWait(driver, 10).until(
    driver.element_to_be_clickable((By.xpath, "//button[contains(text(),'Sil')]"));
element.click
)

没有其他原因可能导致失败。