小编tsa*_*lic的帖子

是否可以使用WebDriver捕获XHR响应数据

我正在使用Selenium WebDriver编写小型机器人.是否可以使用browsermob-proxy或任何不同的方式从XmlHttpRequests的响应中捕获数据?我需要检查POST/GET查询中收到的数据.实际上问题更多与browsermob-proxy的功能有关,我找不到答案.

selenium webdriver selenium-webdriver

14
推荐指数
1
解决办法
3092
查看次数

Selenium/WebDriver脚本被警报中断 - 异常"消息:u'Modal对话框存在'"

我是Python/JS的新手,也是Selenium/WebDriver的自动化测试,但我已经取得了一些进展!

现在我陷入了困境,这真的令人沮丧.

我正在测试的网站销售产品.我设法使我的脚本随机导航并进入付款页面,填写虚拟数据,使用以下方式提交数据:

browser.execute_script("document.Form.submit(); return true;")
browser.execute_script("processPayment(); return true;")
Run Code Online (Sandbox Code Playgroud)

通常,有一个立即付款按钮,单击该元素会导致相同的异常,我无法通过WebDriver(没有WebElement)单击确定/取消,但我发现执行此JS代码我可以得到过去了.我的新加载的页面(在提交数据并确认发布后)带有确认和所有正确的数据加载,但Python脚本被中断,我无法继续测试.

这有解决方法吗?我想要它做的是忽略该模态对话框,等待下一个确认页面加载,然后继续定位元素,打印它们的值,存储它们等.

尝试使用:

wait = ui.WebDriverWait(browser,10)
wait.until(lambda browser: browser.title.lower().startswith('Your Receipt'))
print(browser.title)
Run Code Online (Sandbox Code Playgroud)

但脚本被打断了.对不起,如果这已经回答,但我找不到,而且我也是新手!

提前致谢!

编辑:

做到了!在我的情况下,有效的是我只修改了我的代码

browser.execute_script("document.roomBookingForm.submit(); return true;")
alert = browser.switch_to_alert()
alert.dismiss()
browser.execute_script("processPayment(); return true;")
Run Code Online (Sandbox Code Playgroud)

请注意您需要导入警报的新手.

from selenium.webdriver.common.alert import Alert
Run Code Online (Sandbox Code Playgroud)

python selenium webdriver

11
推荐指数
1
解决办法
1万
查看次数

使用正则表达式库时,在python中为符号添加反斜杠

因此,我需要有选择地将反斜杠添加到已经在python中的re库中具有预定义含义(例如+和*)的字符中.

说我给阵列

arr = ["five", "+", "two", "*", "zero", "=", "five"]
Run Code Online (Sandbox Code Playgroud)

在re(或python)中是否有任何函数允许我将\添加到"+"和"*",所以它看起来像

arr = ["five", "\+", "two", "\*", "zero", "=", "five"] ?
Run Code Online (Sandbox Code Playgroud)

我可以在技术上进行详尽的搜索,并将arr中的每个元素与其中一个符号进行比较并相应地添加\,但这远非理想.任何帮助,将不胜感激!

python regex string list

2
推荐指数
1
解决办法
49
查看次数

标签 统计

python ×2

selenium ×2

webdriver ×2

list ×1

regex ×1

selenium-webdriver ×1

string ×1