Angular JS:Selenium无法通过mac上的python代码单击按钮

时间:2018-03-23 05:57:28

标签: python selenium selenium-webdriver

我有一个按钮,我可以成功找到它并捕获它的文本。但是点击不起作用。有人可以帮忙。

<button class="yellow labeled icon button no-margin" type="button">
<div class="icon my_class"></div>
<span class="ttt">Add new student</span>
</button>

这有效:

return driver.find_element(By.XPATH, 'xpath').text

但这不起作用,“也不例外”。代码通过,但点击未完成。

driver.find_element(By.XPATH, 'xpath').click()

2 个答案:

答案 0 :(得分:0)

粗略调用-.text WebElement 的两种不同状态有关。

您的代码块click()成功,因为当您留意时,添加新学生会在 HTML DOM 中呈现。这并不能保证 WebElement 在那时也可交互。工作中有 JavaScript / Ajax 可能会在那个时间点呈现return driver.find_element(By.XPATH, 'xpath').text

值得一提的是,文字添加新学生的呈现类似于text_to_be_present_in_element的expected_conditions子句,其中互动性(即可点击性)类似于element_to_be_clickable

的expected_conditions子句

解决方案

正如您所提到的那样,它是基于 AngularJS 的网站/元素,并且点击没有被执行,您必须将WebDriverWaitexpected_conditions子句一起设置为{{ 3}}如下:

button

答案 1 :(得分:0)

您可以尝试点击javascript:

element = driver.find_element(By.XPATH, 'xpath') driver.execute_script("arguments[0].click();", element)